新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2019-4-2
- 在线时间
- 4 小时
|
1金钱
新人求助,想从串口中断服务函数中读取命令帧,然后到主函数中判断,若命令帧结束,如从上位机接收的最后一个字符为'#',则执行相应的命令,但是我的程序卡在了
主函数里判断最后一个字符是否是'#'这一步,问题出在哪里呢?
主函数:
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;
}
|
|