串口通信奇怪现象求解。
环境为89C52单片机。单片机在#include<stdio.h>之后,发送printf("%0.2f,%0.2f,%0.2f,%0.2f",1.00,2.00,3.00,4.00);上位机用串口助手之类的只能够收到前3个变量,而第四个变量为0,即1.00,2.00,3.00,0.00.经过多次测试,printf一次最多发送3个变量,瓶颈在哪里呢,怎么解决? 怎么没人啊 每次发完都关闭串口了吗? 用示波器看一下,应该是你的上边的串口软件每次只显示3个的问题了 你自己已经回答了嘛单片机的printf有限制的,不像PC那么强,想发多少都行的 查了下KEIL的帮助文件,有这么一段:
http://cache.amobbs.com/bbs_upload782111/files_49/ourdev_708030QE6CA0.png
Keil帮助中关于printf的注释 (原文件名:2011-12-27_162642.png)
就是说在SMALL和COMPACT两种编译模式下,最多能传递15字节的参数,按着sizeof(float)=4来算,的确三个浮点数就满了
页:
[1]