高中生
最后登录1970-1-1
在线时间 小时
注册时间2020-7-16
|
10火花
如题,我想要用串口把while语句给打断,却发现执行while语句的时候,串口接收不到数据,只有等while执行完之后才能读到串口的数据,是我的思路有问题吗,代码如下,求解~
思路如下:当串口接收到USART_RX_BUF[8]==0X07时,先将数组清零,设置一个标志位,执行while循环,发送PWM波驱动电机,此时跳出while有两个条件,一个是发送的PWM波超过5组,一个是串口接收到0X0A。第一种情况可以跳出while,第二种情况跳不出while,单独设置断点,串口接收是可以的,而且只有在while执行完之后,才可以读到串口的数据,百思不得其解。
- if(USART_RX_BUF[8]==0X0A)
- {
- for(m=0;m<9;m++)
- {
- USART_RX_BUF[m]=0;
- }
- stop=1;//标志位
- TIM_Cmd(TIM1, DISABLE);
- }
-
- if(USART_RX_BUF[8]==0X07)
- {
- for(m=0;m<9;m++)
- {
- USART_RX_BUF[m]=0;
- }
- test_state_test=1; //标志位
- while(test_state_test==1)
- {
- num_slow++;
- TIM1_PWM_Init(600,71);
- TIM_SetCompare1(TIM1,300);
- delay_ms(300);
- TIM_Cmd(TIM1, DISABLE);
- delay_ms(300);
- if(num_slow==5)
- test_state_test=0;
- if(stop==1)
- test_state_test=0;
- }
- TIM_Cmd(TIM1, DISABLE);
- }
复制代码
|
|