[CW32F030系列] 将C库的printf函数重定向到UART

[复制链接]
1136|12
 楼主| 51xlf 发表于 2022-11-23 22:52 | 显示全部楼层 |阅读模式


这里不用keil自带的microLib这个代码,就是自己重新映射端口。
包含头文件 stdio.h

  1. #ifdef __GNUC__
  2.   /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
  3.      set to 'Yes') calls __io_putchar() */
  4.   #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
  5. #else
  6.   #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
  7. #endif /* __GNUC__ */
映射串口
  1. PUTCHAR_PROTOTYPE
  2. {
  3.   USART_SendData_8bit(DEBUG_USARTx, (uint8_t)ch);

  4.   while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET);

  5.   return ch;
  6. }


pentruman 发表于 2022-12-1 17:42 | 显示全部楼层
是否有虚拟串口的代码实现的?              
xiaoyaodz 发表于 2022-12-1 17:52 | 显示全部楼层

c语言中使用printf要利用到系统内核吗?  
hilahope 发表于 2022-12-1 18:19 | 显示全部楼层
printf太大了,有没有代替的好方**   

评论

相比于自己做字符串,数字,格式化等信息printf真心不算大 我更喜欢直接把lcd的显示用printf来实现,非常便利  发表于 2022-12-5 15:55
burgessmaggie 发表于 2022-12-1 18:48 | 显示全部楼层
使用printf函数后,编译后的文件变得很大,容易出现内存溢出
uytyu 发表于 2022-12-1 19:17 | 显示全部楼层
请问sprintf、fprintf和printf这三个函数有什么区别?
ingramward 发表于 2022-12-1 21:48 | 显示全部楼层
如何将printf函数映射到两个uart  
uytyu 发表于 2022-12-1 22:39 | 显示全部楼层
怎么在cw32里使用printf重定义
sheflynn 发表于 2022-12-3 14:11 | 显示全部楼层

如何不用printf()函数实现串口数据的发送 ?
loutin 发表于 2022-12-3 14:58 | 显示全部楼层
C语言中使用printf函数需要设置什么?  
sdCAD 发表于 2022-12-5 22:08 | 显示全部楼层
printf()和scanf()函数怎么用的?  
AloneKaven 发表于 2022-12-26 12:27 | 显示全部楼层
选择keil里面自带的微库
您需要登录后才可以回帖 登录 | 注册

本版积分规则

551

主题

9967

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部