欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

STM32F407霸天虎HAL库学习笔记——串口发送

发布时间:2024/1/1 编程问答 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 STM32F407霸天虎HAL库学习笔记——串口发送 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

STM32F407霸天虎HAL库学习笔记——串口收发

  • 一、软件准备
  • 二、硬件准备
  • 三、CubeMX配置
  • 四、Keil
    • printf重写
    • main函数
  • 五、实验效果

一、软件准备

软件准备

二、硬件准备

STM32F407霸天虎
DAP高速下载器
USB转串口线

三、CubeMX配置

STM32F407霸天虎用的是STM32F407ZGT6

选择外部高速时钟


因为霸道开发板上的LED是默认低电平点亮的,所以这里我们GPIO选择默认输出高电平

USART1选择异步通信,其他配置默认

时钟树选择168MHz,具体配置方法见上篇的时钟树配置

而后根据自己的喜好编辑工程的名称,存放位置,IDE选择ARM-MDKV5

四、Keil

由于我们的Debug用的是DAP,如图下选择Debug和下载配置

printf重写

首先勾选Use MicroLIB调用MDK的微库,MicroLIB是对C标准库高度优化之后的库,比标准库代码更少,使用效率更高。

添加至usart.c文件的用户自定义代码块1中
这里直接操作寄存器来发送,效率更高

#if 1 #include <stdio.h> int fputc(int ch,FILE *stream) {//阻塞判断串口是否发送完成while((USART1->SR & 0x40)==0);//串口发送完成,将发送该字符USART1->DR = (uint8_t)ch;return ch; } #endif

main函数

因为要使用printf函数,所以要记得添加 include <stdio.h>

/* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_RESET);printf("Hello!物联网小白Jayce\r\n");HAL_Delay(500);HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_SET);HAL_Delay(500);}/* USER CODE END 3 */

五、实验效果

开发板上红灯每闪一次就打印一次

总结

以上是生活随笔为你收集整理的STM32F407霸天虎HAL库学习笔记——串口发送的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。