标题:
分享一个51单片机实现printf串口打印方法 附源程序
[打印本页]
作者:
没有你
时间:
2019-7-22 17:22
标题:
分享一个51单片机实现printf串口打印方法 附源程序
51单片机具有收发串口,可以可PC进行串口通信。但是如果要实现类似printf(“data = %d\naddr data = %x\n”,a,&a),就需要写一个printf函数,里面封装串口发送功能。//printf打印函数
int Printf(const char*fmt, ...)
{
int ulLen;
va_list ap;
char *pBuf = (char*)malloc(200); // 开辟缓冲区
va_start(ap, fmt);
ulLen = vsprintf(pBuf, fmt, ap); // 用虚拟打印函数实现
va_end(ap);
Uart_write((uint8*)pBuf, ulLen); // 从串口0输出
free(pBuf); // 释放内存空间
PBuf = NULL;
return ulLen;
};
//串口发送ullen个字节的数据函数
void Uart_write((uint8*)pBuf, ulLen)
{
uint8 i;
for(i = 0; i < ullen ; i++)
{
SBUF=*pBuf; //数据加载到发送缓冲区
while(!TI); //等待发送完成
pBuf++; //指针指向下一组数据
TI=0;
}
}
作者:
xiaozhong1314
时间:
2019-7-22 21:50
有工程吗
作者:
没有你
时间:
2019-7-23 09:09
986212146 发表于 2019-7-22 21:50
有工程吗
没有工程。我这个只是提供一个串口打印的方法。就算是其他类型的单片机,也可以这样处理。也就是直接修改void Uart_write((uint8*)pBuf,ulLen)里面的串口发送驱动部分
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1