STM32cubeIDE串口uart打印

STM32cubeIDE进行Uart打印

注意:

注意不能打印浮点数,因为uart的传递的数据就是int类型,但是如果把printf重定向到ide,可以使能printf打印浮点数
注意1:stm32cubeide没有usart的库函数了,由于usart逐渐被淘汰,stm32的HAL库只留下了uart的库
注意2:stm32cubeide移植printf函数与keil移植printf函数不同的是,keil可以勾选lib库,由于stm32cubeide问世不久教程很少,并不能有效的重定向printf函数,可能是我的编译器配置有问题
解决办法用HAL_UART_Transmit函数代替printf,并且减少了每次移植printf找代码的麻烦,只不过每次串口打印时,麻烦那么一点点 //注意使用阻塞式串口打印,也就是使用不带中断的串口打印
例子:在上位机打印"你好 word"HAL_UART_Transmit(&huart1,(uint8_t*)“你好 world”,sizeof(“你好 world”), 0xffff); //注意工程用GBK编码才能打印中文

结果验证

在这里插入图片描述

2020-6-16后续

>>今天又试了一下,参考https://blog.csdn.net/qq_36075612/article/details/96851644这个博客
>>能打印了,并没有选择什么其他的什么库与编译器,使用的默认的精简版的C库,对了fputchar
>>不需要在uart.h里面进行声明,在调用printf时,编译器会自动找到fputchar函数,它的声明已经在stdio.h文件有了

重定向printf的代码


```c
#include "stdio.h"

#ifdef __GNUC__

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

PUTCHAR_PROTOTYPE
{

 HAL_UART_Transmit(&huart1,(uint8_t*)&ch, 1, HAL_MAX_DELAY);

 return ch;
}
#endif

在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
STM32CUBEIDE是一种用于开发STM32微控制器的集成开发环境。它支持多种串口通信协议,包括USART和UART。根据引用,STM32微控制器具有多个USART和UART接口。其中,USART1的时钟来源于APB2总线时钟,最大频率为72MHz,而其他四个USART和UART接口的时钟来源于APB1总线时钟,最大频率为36MHz,如引用所述。 要在STM32CUBEIDE中进行串口通信,可以使用USART和UART接口。根据引用,USART接口支持同步单向通信和半双工单线通信,并且还支持LIN、智能卡协议和IrDA SIR ENDEC规范以及调制解调器操作 (CTS/RTS)。而UART接口只支持异步传输功能,因此没有SCLK、nCTS和nRTS功能引脚,如引用所述。 要在STM32CUBEIDE中配置和使用串口通信功能,您可以按照以下步骤进行操作: 1. 打开STM32CUBEIDE集成开发环境,并创建一个新的工程或打开现有的工程。 2. 在工程中选择要使用的STM32微控制器型号,并配置时钟和引脚设置。 3. 在配置文件中找到串口配置部分,并选择要使用的USART或UART接口。 4. 根据您的需求,配置串口的参数,例如波特率、数据位数、停止位数、校验位等。 5. 在代码中编写相应的初始化函数和发送/接收函数,以实现串口通信功能。 6. 构建和烧录代码到STM32微控制器中,并连接电脑与微控制器的串口进行通信。 请注意,具体的配置和代码实现可能会根据您使用的具体STM32微控制器型号和通信需求而有所不同。因此,建议您参考相关的STM32CUBEIDE文档和参考手册,以获取更详细的指导和示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [STM32F1与STM32CubeIDE快速入门-USART/UART串口通信](https://blog.csdn.net/wujuxKkoolerter/article/details/123263120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【CubeIDESTM32 HAL库史上最详细教程(一):UART串口收发](https://blog.csdn.net/qq_42652838/article/details/107776265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值