[STM8] stm8s串口发送数据检查TXE标志也没用

[复制链接]
4501|5
 楼主| donkey89 发表于 2011-8-9 11:28 | 显示全部楼层 |阅读模式
本帖最后由 donkey89 于 2011-8-9 11:30 编辑

代码如下,但是密集发送的时候前一个数据被重复,后一个数据被丢失,把TXE标志换成TC标志也是一样
  1. void uart_send_char(char a)
  2. {
  3.   while(!(UART1->SR&((uint8_t)UART1_FLAG_TXE)));
  4.   UART1->DR=a;
  5. }
主程序是这么调用的
  1.           uart_send_char(adc_value[0]);
  2.           uart_send_char(adc_value[1]);
  3.           uart_send_char(0x55);//adc_value[2]);
IJK 发表于 2011-8-9 13:52 | 显示全部楼层
stm8s串口发送,印象里没有碰到这样的问题。
“密集发送”有多密集,连发多少个字节?
 楼主| donkey89 发表于 2011-8-9 17:58 | 显示全部楼层
2# IJK
就三个字节而已.其中前两个字节是对的,第三个字节变成了第二个字节
调用代码在一楼已经贴出来了
香水城 发表于 2011-8-9 18:07 | 显示全部楼层
用示波器看看,会不会是接手端漏了?
 楼主| donkey89 发表于 2011-8-9 18:58 | 显示全部楼层
4# 香水城
可能性不大,每次连续发送3个字节,就是第三个字节不对,而且是第二个字节的重复.
 楼主| donkey89 发表于 2011-8-9 21:08 | 显示全部楼层
找到原因了,把原来编译的obj文件全部删除,然后重新编译,发现函数没有声明,补上声明就可以了.
不知道为什么link的时候把以前的一起编译进去的,新的却没有被编译.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:数显ESR电容等效内阻测量仪 http://cn.digit-esr.com

241

主题

1609

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部