打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
博创串口printf函数的使用
当我们在调试代码时,通常需要将程序中的某个变量打印至PC机上,来判断我们的程序是否按预期的运行,printf函数很好的做到了这一点,它能直接以字符的方式输出变量名和变量的值,这样使输出的信息很直观;但printf函数在使用时,不仅仅要初始化串口,还需要其它的一些设置或者要调用其它的一些函数,否则printf函数将不能按我们想要的方式执行。

    由于不同的编译器stdio函数不一样,所以使用的方法也不一样。

下面以ADS博创实验为例说明

首先printf函数会调用底层函数fgetc

我们必须重写fgetc

int fputc(int ch, FILE *f)
{
 
 
 
 if(f ==&__stdout) //for console out pute.g. printf
  CONSOLE_PUTC(ch);

 return ch;
}

然后对CONSOLE_PUTC解析,如下

#define CONSOLE_PUTC(ch) Uart_SendChar(CONSOLE,(ch))

#define CONSOLE  0

#define Uart_SendChar(nUart,ch) do{if((ch)=='\n') Uart_SendByte((nUart),'\r'); \
         Uart_SendByte((nUart),(ch)); }while(0)

 格式化部分还是使用了printf函数本身的内容。

这样可以把串口的函数做成库,整体黑盒使用。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
浅谈嵌入式软件开发之重定向标准输入输出设备使用printf()函数格式化输出调试信息(基于S32DS...
day03
C语言的一些“骚操作”及其深层理解
《嵌入操作系统 - RT-Thread开发笔记》 第二部分 RT-Thread Nano移植与使用 - 第5章 RT-Thread Nano 上移植FinSH
stm32串口重定向printf
ARM裸机编程系列--UART
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服