微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32f407(cortex-M4)USART串口调试程序

stm32f407(cortex-M4)USART串口调试程序

时间:11-25 来源:互联网 点击:

USART_ITConfig(USART6, USART_IT_RXNE, ENABLE); //使能 USART6中断
USART_Cmd(USART6, ENABLE); //使能 USART6
}

void NVIC_Config()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//嵌套优先级分组为 1
NVIC_InitStructure.NVIC_IRQChannel = USART6_IRQn;//嵌套通道为USART6_IRQn
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级为 0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //响应优先级为 0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //通道中断使能
NVIC_Init(&NVIC_InitStructure);
}

void USART6_Puts(char * str)
{
while (*str)
{
USART_SendData(USART6, *str++);


while (USART_GetFlagStatus(USART6, USART_FLAG_TXE) == RESET); //详见英文参考的521页,当TXE被置起时,一帧数据传输完成
}
}


void Delay(uint32_t nCount)
{
while (nCount--);
}

中断服务函数如下:

void USART6_IRQHandler(void)
{
if (USART_GetITStatus(USART6, USART_IT_RXNE) != RESET) //判断为接收中断
{
USART_SendData(USART6, USART_ReceiveData(USART6));//发送收到的数据
GPIO_ResetBits(GPIOG, GPIO_Pin_6);//点亮LED,起到中断指示作用
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top