本来丢一个数也没有多大问题,关键是上位机软件已经固定,我这里多发和少发,会导致上位机不光不干活,崩溃,如果能够知道,我自己发出去什么数了也可以解决。
不过103VC的五个串口都用了,没有资源用来做反馈,当初选型103关键因素之一就是其5个串口。
点赞  2010-10-17 18:33
                                 16楼附件忘加了
点赞  2010-10-17 18:34
第16层软件超过5M,没加进去,补上

STM32F10x_StdPeriph_Lib_V3.3.0.rar (4.35 MB)

点赞  2010-10-17 18:38
本来丢一个数也没有多大问题,关键是上位机软件已经固定,我这里多发和少发,会导致上位机不光不干活,崩溃,如果能够知道,我自己发出去什么数了也可以解决。
不过103VC的五个串口都用了,没有资源用来做反馈,当初 ...
多一个字节就不正常工作,协议制定就有问题。
点赞  2010-10-17 19:33
首先,上位机这样设计,肯定不合格。
其次,查找这个问题需用分治法。或许不是发送丢数,而是接收丢数呢、、、
第1步、分清是软件还是硬件的问题
第2步、、、、
点赞  2010-10-18 02:42
用这个调试软件直接捕获数据,看你的设备发出了什么。

注意:一定按照下面详细使用方法里说明的顺序操作。

see link below:

下载地址:
http://download.cnet.com/ComTrac ... 6892.html?tag=mncol

感觉好别忘了给个review(评论),谢谢!

FAQ
How to use it?
1.Run ComTrace
2.Select serial port name(e.g. COM1)
3.Run serial port application program that you want to debug(e.g. Windows HyperTerminal)
4.debug......(e.g. press any key in Windows HyperTerminal, then watch the data that is captured.)
5.Close application program(e.g. Windows HyperTerminal)
6.Close ComTrace

Notice: You must operate by the order, only support Win2000 and WinXp(32 bit) system!
点赞  2010-10-18 08:58
                                 我所有的上位机接收数据是使用上位机程序(或串口调试软件)+串口监控软件来实现的,也就是说上位机接收的应该就是单片机发送的。
点赞  2010-10-18 10:33
                                 不判断USART_FLAG_TC 用判断USART_FLAG_TXE试一试。
点赞  2010-10-18 11:04
确实怪现象

我用STM32做过很多串口通信,从来没发现过此类问题

你就用ST的例程代码一个字都不要改来试试。

不用示波器,很麻烦啊。。。
点赞  2010-10-18 11:31
把发送程序换成这样试一下
void uart2_send_byte(u8 ch)
{
  /* Loop until the end of transmission */
  while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET)
  {
  }
  USART_SendData(USART2, ch);
}
点赞  2010-10-18 13:20
                                 由USART_FLAG_TC 改为判断USART_FLAG_TXE不能解决问题
点赞  2010-10-18 16:41
                                 我23楼上传的程序就是st的模板
点赞  2010-10-18 16:43
12
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复