打印
[STM8]

香主救急:串口中断接收后的变量在主程序里不能判断,急!!

[复制链接]
1517|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
velf8|  楼主 | 2013-1-21 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用STVD STM8S103F3P6芯片
oid UART1_init(void)
{
        UART1_CR1 = 0x00;
        UART1_CR3 = 0x00;
  UART1_BRR2 = 0x05;         // 设置波特率9600 01
  UART1_BRR1 = 0x11;         // 8M/9600 = 0x341 34
  UART1_CR2 = 0x2C;          // 允许接收中断,允许接收,允许发送
}
@far @interrupt void UART1_Recv_int(void)
{
        UART1_SR=0;

         RxBuffer=UART1_DR;
        while (!(UART1_SR & 0x20));
        if(RxBuffer==59)//遇到分号为结尾
        {
   rxok=1;
         UART1_CR2&=0xfb;
         Delays(10);
  }
  return;
}
主程序main()
        while (1)
        {
         if(rxok==1)
         {       
                delay500(10);          
         }
        }
调试时候:从PC发送;到STM8后 STM8执行完中断服务子程序后,rxok=1,但跳回主程序后,就发现rxok自动变成0了
沙发
bladeprog| | 2013-1-21 15:40 | 只看该作者
定义rxok的时候加volatile关键字。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

25

帖子

0

粉丝