新人求助,想从串口中断服务函数中读取命令帧,然后到主函数中判断,若命令帧结束,如从上位机接收的最后一个字符为'#',则执行相应的命令,但是我的程序卡在了
主函数里判断最后一个字符是否是'#'这一步,问题出在哪里呢?
主函数:
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
RS485_Init(115200); //初始化RS485串口3
LED_Init(); //初始化LED
TIM3_Int_Init(10000-1,8400-1);
OV2640_Init();
delay_ms(200);
while(1)
{
if(RS485_receive_str[uart_byte_count-1] == '#') //卡在这一步了
{jpeg_test();}
}
}
串口中断:
void USART3_IRQHandler(void)
{
unsigned int rec_data;
uart_byte_count=0;
if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据
{
rec_data = (u8)USART_ReceiveData(USART3); //(USART3->DR) 读取接收到的数据
RS485_receive_str[uart_byte_count++] = rec_data;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>