1.c51使用串口出现顺序被覆盖的情况,也就是输出time 最后输出的却是te
这是因为你没有等待上一个数据发送就开始发送下一个数据就会导致数据篡位
2.c51想使用串口重定义使用printf
首先c51是自带stdio.h不需要像32那样点击 include lib选项,你直接改putchar函数即可
void Uart_SendChar(unsigned char dat)
{
SBUF = dat;
while(TI);
TI = 0;
}
char putchar(unsigned char c)//重定向
{
Uart_SendChar(c);
return c;
}
你要把底层发送字节函数改成你自己单片机的就行
3.串口发送中文乱码
这是因为你的编码格式和你的串口助手编码格式不一样,或者你的编码格式压根不支持中文,这里还要特别注意,keil显示乱码那是因为你翻译器解读代码,你改正确了以后并不代表你串口输出也是正确的,因为编译器和翻译器就是两个不同的东西,翻译器改了编译器不一定合适
那如何改编译器的格式呢
设置里设置就行
4.printf函数内部的问题,我不知道为啥,我重定义的51串口发送会出问题
这样就会有问题
这个就没问题
5.