高级会员
- 积分
- 522
- 金钱
- 522
- 注册时间
- 2019-8-16
- 在线时间
- 39 小时
|
10金钱
各位大佬,萌新最近刚使用STM8进行485通信,在调试uart2串口通信时,程序总是卡在这一句。
//while(USART_GetITStatus(USART2,USART_IT_TXE)==RESET);//检查指定的UART标志位设置与否,发送数据空位标志
//while((USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET));//等待DR为空
while((USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET));
将中断换为正常TXE和TC之后仍然卡在这里,请问可能是我哪里没有配置好呢?
多谢各位大佬了!
这里是我uart2的初始化
//初始化UART2
void RS485_Init(uint32_t bound)
{
//1串口时钟使能,GPIO 时钟使能
CLK_PeripheralClockConfig(CLK_Peripheral_USART2, ENABLE);
//2串口复位
USART_DeInit(USART2);
//3GPIO 端口模式设置
GPIO_Init(GPIOE, GPIO_Pin_4, GPIO_Mode_Out_OD_Low_Fast);
GPIO_Init(GPIOE, GPIO_Pin_3, GPIO_Mode_In_PU_No_IT);
//4串口参数初始化
USART_Init(USART2,bound,USART_WordLength_8b,USART_StopBits_1,USART_Parity_Even,(USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));
//5开启中断并且初始化 NVIC(如果开启中断才需要这个步骤)
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
//6使能串口
//7编写中断处理函数
ITC_SetSoftwarePriority(0x20,ITC_PriorityLevel_1);//设置485接收优先级1 //TIM2_CC_USART2_RX_IRQn = 0x20
USART_Cmd(USART2, ENABLE);
enableInterrupts();
}
|
|