[求助] stm32事件中断

青城山下   2018-1-22 18:23 楼主
变量CurrntStatus是从UART口收到的数据,假设第10s的时候收到的数据是0,则执行函数的最下面部分的falt_light函数,但是如果在第11秒执行falt_light函数的时候,从UART串口收到的数据是1,我想从falt_light跳出来,立即去执行CurrntStatus==1下面的指令,请问该怎么处理好呢?
  1. void light_carmaker(){
  2. int i =0 ;
  3. if(Flag==1)
  4. return;
  5. if(CurrntStatus == 2){
  6. ControlYellowLigh(); //控制和发送黄灯的状态
  7. }
  8. else if(CurrntStatus == 3){
  9. GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8);
  10. GPIO_SetBits(GPIOB,GPIO_Pin_6);//南北绿灯亮SN秒,东西红灯亮SN秒
  11. GPIO_SetBits(GPIOB,GPIO_Pin_5);//PB5是状态指示灯和南北绿灯的状态是一致的
  12. delay_ms(1000);
  13. }
  14. else if(CurrntStatus == 1){
  15. GPIO_ResetBits(GPIOB,GPIO_Pin_6);//关闭南北绿灯,东西红灯亮
  16. GPIO_ResetBits(GPIOB,GPIO_Pin_5);//状态指示灯LED2和南北的绿灯亮灭保持一致
  17. GPIO_ResetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7);//给高电平,关其他方向的灯
  18. GPIO_SetBits(GPIOB,GPIO_Pin_8); //东西绿灯亮EW秒,南北红灯亮EW秒
  19. delay_ms(1000);
  20. }
  21. else if(CurrntStatus == 0){
  22. falt_light();
  23. }
  24. }
  25. void falt_light(){
  26. //PB6连接的是南北绿东西红灯 PB7接的是黄灯 PB8接的是南北红东西绿灯
  27. GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8);//给高电平,关其他方向的灯
  28. GPIO_ResetBits(GPIOB,GPIO_Pin_5); //先让状态指示灯灭
  29. snblu1=5;
  30. ewblu1=5;
  31. path = 0;
  32. w = 0;
  33. for(i=1;i<=snblu1;i++)
  34. {
  35. if(Flag==1)
  36. return;
  37. GPIO_SetBits(GPIOB,GPIO_Pin_6);//南北绿灯亮SN秒,东西红灯亮SN秒
  38. GPIO_SetBits(GPIOB,GPIO_Pin_5);//PB5是状态指示灯和南北绿灯的状态是一致的
  39. if(Flag==1)
  40. return;
  41. delay_ms(1000); //延时1s
  42. }
  43. if(Flag==1)
  44. return;
  45. GPIO_ResetBits(GPIOB,GPIO_Pin_6);//关闭南北绿灯,东西红灯亮
  46. GPIO_ResetBits(GPIOB,GPIO_Pin_5);//状态指示灯LED2和南北的绿灯亮灭保持一致
  47. GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_6);//给高电平,关其他方向的灯
  48. for(i=1;i<=ewblu1;i++)
  49. {
  50. if(Flag==1)
  51. return;
  52. GPIO_SetBits(GPIOB,GPIO_Pin_8); //东西绿灯亮EW秒,南北红灯亮EW秒
  53. if(Flag==1)
  54. return;
  55. delay_ms(1000);
  56. }
  57. GPIO_ResetBits(GPIOB,GPIO_Pin_8);//灭东西绿灯
  58. }
本帖最后由 青城山下 于 2018-1-22 18:24 编辑

回复评论 (1)

弄一个逻辑式把决定动作的条件都加进去,根据条件进执行函数,你这么加点再加点不是办法.
点赞  2018-1-22 19:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复