今天突然发现,前些年做的一款usb转TTL串口的转接板,不能连续大量发送0x00。
测试环境是这样的,在单片机上调试好串口发送函数putch();单片机接收到任意一个数据,
单片机就开始往PC机发送99个0x00和一个标志计数,发100次,总共是9900个0x00,标志从1~99,这时候从串口sscom32却只能读到2800个左右的数据。
调试助手中看到的数据,可以发现丢了好多0x00,但是又不知道为什么丢。
如果连续发送1~100这样的数,发送100次,却一个数也不丢。
真心郁闷,恳请大神相助啊。
这个是我的函数:
- void main(void)
- {
- volatile unsigned int counter;
- volatile unsigned int counter2;
- volatile unsigned char temp;
-
- sys_init();
- while(1)
- {
- if(RI)
- {
- temp = getch();
- for(counter=0; counter<100; counter++)
- {
- for(counter2=0; counter2<99; counter2++)putch(0x00);
- putch(counter);
- }
- putch(temp);
- }
- }
-
- }
复制代码
截图01.jpg (180.9 KB, 下载次数: 0)
下载附件
2015-3-10 18:30 上传
一周热门 更多>