发新帖我要提问
12
返回列表
打印
[STM8]

使用中断进行串口通信时候一个字节可以通信,多字节就.....

[复制链接]
楼主: 歇斯底里
手机看帖
扫描二维码
随时随地手机跟帖
21
歇斯底里|  楼主 | 2017-4-22 17:12 | 只看该作者 回帖奖励 |倒序浏览
歇斯底里 发表于 2017-4-22 16:54
那这样有什么好的解决方法吗,求教

我把他们定义为volatile的变量也是这样的情况

使用特权

评论回复
22
戈卫东| | 2017-4-22 18:57 | 只看该作者
   int bytes_to_send;
   if(flagTxd==1)
       {
       flagTxd = 0;                                    /* 收到信号马上清除 */
       bytes_to_send = UART_RX_NUM;     /* 马上把字节数复制出来 */

      for(i=0;i< bytes_to_send;i++)
        {
           UART1_Send_Byte(RxBuffer);
          }
         delay_us(50);
       }

使用特权

评论回复
23
戈卫东| | 2017-4-22 18:57 | 只看该作者
应该会好一点。
不过仍然不能够保证一定没有问题。

使用特权

评论回复
24
歇斯底里|  楼主 | 2017-4-24 09:02 | 只看该作者
戈卫东 发表于 2017-4-22 18:57
应该会好一点。
不过仍然不能够保证一定没有问题。

今天一早过来试了一试,在主函数里收到信号了就立马清除,字节数也复制出来,调试的还是有问题,崩溃。谢谢你前两天给我的指导
if(flagTxd==1)
       {
         flagTxd=0;
        len1=UART_RX_NUM;        //得到此次接收到的数据长度
        UART_RX_NUM=0;
       //UART1_Send_Byte(len1);   
      for(i=0;i<len1;i++)
        {
           UART1_Send_Byte(RxBuffer);
          }
         delay_us(50);
       for(i=0;i<len1;i++)
        {
          RxBuffer=0;
          }


使用特权

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

本版积分规则