当前位置:   article > 正文

stm32printf函数的串口输出代码

stm32printf函数的串口输出

stm32f103串口一与串口二printf函数输出、

因项目需要特意配置了该段代码,不喜勿喷,纯属个人笔记。

对于串口的代码网上也是很多,无非是配置问题,该代码是基于stm32f103c8t6来编程的。

接线:

USART                                                  STM32

GND                                                     GND

  T                                                           PA3

  R                                                           PA2

在项目文件内创建usart2.c文件与usart.h文件,将文件导进去进行相关串口配置便可,

以下相关配置可根据用户手册与历程代码修改。

  1. /*·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ý*/
  2. void UART2SendByte(unsigned char SendData)
  3. {
  4. USART_SendData(USART2,SendData);
  5. while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
  6. }
  7. /*½ÓÊÕÒ»¸ö×Ö½ÚÊý¾Ý*/
  8. unsigned char UART2GetByte(unsigned char* GetData)
  9. {
  10. if(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET)
  11. { return 0;//ûÓÐÊÕµ½Êý¾Ý
  12. }
  13. *GetData = USART_ReceiveData(USART2);
  14. return 1;//ÊÕµ½Êý¾Ý
  15. }
  16. /*½ÓÊÕÒ»¸öÊý¾Ý£¬ÂíÉÏ·µ»Ø½ÓÊÕµ½µÄÕâ¸öÊý¾Ý*/
  17. void UART2Test(void)
  18. {
  19. unsigned char i = 0;
  20. while(1)
  21. {
  22. while(UART2GetByte(&i))
  23. {
  24. USART_SendData(USART2,i);
  25. }
  26. }
  27. }

那么接下来就是相关printf函数的配置了

1 .MDK配置

      到工程属性的Target   -> Use MicroLIB  把勾上

 

2. 在usart2函数中要包含“stdio.h”

 

3. 重定向   “fputc”  函数,直接粘贴复制进目标文件即可

  1. #if 1
  2. #pragma import(__use_no_semihosting)
  3. struct __FILE
  4. {
  5. int handle;
  6. };
  7. FILE __stdout;
  8. void _sys_exit(int x)
  9. {
  10. x = x;
  11. }
  12. //fgetcÖض¨Ïò
  13. int fputc(int ch, FILE *f)
  14. {
  15. while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);
  16. USART_SendData(USART2,(uint8_t)ch);
  17. return ch;
  18. }
  19. #endif

配置完成后便可使用

为了方便大家阅读,我也上传了一份历程参考https://download.csdn.net/download/HHHSSD/16102087

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/205676
推荐阅读
相关标签
  

闽ICP备14008679号