OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11418|回复: 3

求助 STM32 串口中断发送数据 有丢失数据

[复制链接]

6

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2011-8-4
在线时间
3 小时
发表于 2011-8-4 13:39:26 | 显示全部楼层 |阅读模式
 遇到个奇怪的问题请教大家
 串口发数,总共发27个 ,结果只发了18个出来
我仿真一步步看 缓存全装的对 串口的发送中断计数也是对的 一直记到了27个 可为什么发出来的只有18个呢 之前测试其他功能发送是对的
 下面是串口中断发数
if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)
  {   
   
     USART_SendData(USART1, sendBuf[qp]);
  qp++;//仿真看QP的确记到了第27个 那应该是发出来了啊 可怎么监听的助手看 只发了18个出来呢
  if(qp==Uart0_send_counter)
    {
        USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
        Delay(1);
        for(i = 0;i<100;i++) 
        { 
            sendBuf = 0; 
        }
  Delay(10);
  flag1=1;
  qp=0; 
  USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
    }
   
  }
BUF装的 我仿真看了 都装进去了 这个装数的过程应该没错了,
其他地方检查了 没有对计数qp改变的地方,按我的理解 既然都进入了发送中断 发送的计数也正确 ,那就是说应该的确发出去了 ,可是我从监听助手看没有全发完呢,大家给分析下 什么原因呢 ,帮忙了 谢谢
 
您帮我看看啊,BUF装的 我仿真看了 都装进去了 这个装数的过程应该没错了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-8-4 13:55:11 | 显示全部楼层
1,库函数我不熟悉,不太看的懂你的代码.
2,不使用终端发送,是否可以看到发送27个字节呢?
3,你是软件仿真么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2011-8-4
在线时间
3 小时
 楼主| 发表于 2011-8-4 14:23:49 | 显示全部楼层
正点哥,我刚才试验了下
sendBuf[1] = 0x01;
sendBuf[2] = 0x01;//本机地址 到时候记得改
sendBuf[3] = 0x30;//
sendBuf[4] = 0x33;//功能码
sendBuf[5] = 0x01;
sendBuf[6] =0x01;//回的字节数
sendBuf[7] =0x01;//回的字节数
sendBuf[8] =0x01;//回的字节数
sendBuf[9] =0x01;//回的字节数
sendBuf[10] =0x01;//回的字节数
sendBuf[11] =0x01;//回的字节数
sendBuf[12] =0x01;//回的字节数
sendBuf[13] =0x01;//回的字节数
sendBuf[14] =0x01;//回的字节数
sendBuf[15] =0x01;//回的字节数
sendBuf[16] =0x01;//回的字节数
sendBuf[17] =0x0a;//回的字节数
sendBuf[18] =0x0d;//回的字节数
sendBuf[19] =0x0d;//回的字节数
sendBuf[20] =0x01;//回的字节数
就这么直接放,和助手看的一样 丢了两个
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-8-4 19:12:46 | 显示全部楼层
这,你慢一点传试试.
printf->delay_ms(100);->printf....
看这样还有丢失的么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 19:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表