STM32F407串口通信配置与实现
创作时间:
作者:
@小白创作中心
STM32F407串口通信配置与实现
引用
CSDN
1.
https://blog.csdn.net/qq_36528377/article/details/122476520
本文将详细介绍如何使用STM32CubeMX配置工程并通过MDK-ARM编写代码实现STM32F407的串口通信。内容包括串口通信的基本概念、STM32CubeMX的配置步骤以及具体的代码实现。
一、串口通信简介
串口按位(bit)发送和接收字节的通信方式。通信可以分为同步串口通信和异步串口通信。
- 波特率:是一个衡量符号传输速率的参数。在单片机使用中,常用的波特率有9600、115200等。
- 数据位:通信中实际数据位的参数。
- 停止位:单个包的最后位。典型的值为1,1.5和2位。
- 校验位:判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
二、STM32CubeMX配置
配置串口引脚,和串口设置
设置串口中断优先级
中断优先级又分为抢占优先级和响应优先级。数字越小越优先。
点击generate code生成初始化代码。
三、代码实现
编写fputc重定义函数。重写后可以在单片机项目中使用stdio.h库中的printf函数。
/*
如果需要支持stdio.h还需要在target里面选择USE MicroLIB
*/
/*使用范例
printf("Hello world \r\n");
HAL_Delay(500);
HAL_UART_Transmit(&huart1,"使用HAL库函数发送数据\r\n",23,1000); //1-选择串口,2-输出内容,3-输出内容长度,4-最长等待时间
*/
//重定义fputc函数
//需要调用 stdio.h头文件,支持库中printf函数
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,HAL_MAX_DELAY);//挂载到串口1
return ch;
}
//重定义fgetc函数
int fgetc(FILE *f)
{
uint8_t ch;
HAL_UART_Receive(&huart1,(uint8_t *)&ch,1,HAL_MAX_DELAY);
return ch;
}
//串口中断回调
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart -> Instance == USART1)
{
HAL_UART_Receive_IT(&huart1,(uint8_t*)usart1_ReadBuffer,USART1_LENGTH);
}
}
头文件中声明函数
#include "usart.h"
#include "stdio.h" //为了支持printf
#define USART1_LENGTH 8
extern uint8_t usart1_ReadBuffer[8];
//在mian.c中要定义这些外部变量
int fputc(int ch, FILE *f);
int fgetc(FILE *f);
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart);
main函数中调用串口通信相关函数实现功能,main.h中包含头文件。
/* USER CODE BEGIN 2 */
HAL_UART_Receive_IT(&huart1,(uint8_t*)usart1_ReadBuffer,USART1_LENGTH);
printf("STM32F407 Init!\r\n");
Led0_Light_N(5,500);
Led1_Light_N(5,500);
/* USER CODE END 2 */
四、在target里面选择USE MicroLIB
这一步挺关键的,如果没有在target里面选择USE MicroLIB的话,前面写了重定义fputc也不会生效。
热门推荐
《冰雪奇缘3&4》同步制作,詹妮弗·李揭秘幕后
王星感谢信里的"小心机":教你写出走心感谢信
年末感恩季,如何写出一封完美的商务感谢信?
夏季养生:四神汤与黄豆芽的营养价值
天玑和骁龙哪个好?处理器性能全解析
骁龙778Gvs天玑8100(性能、功耗与体验比较)
赵孟頫以行书诠释李白<月下独酌>
李白:盛唐诗坛的浪漫主义巨匠
非物质文化遗产女书的文化创意发展研究
从零开始写网络小说:别让卡文毁了你的网文梦!(干货技巧分享)
五年级数学下册:分数运算、立体图形等5大知识点详解
分数运算、立体几何成难点,五年级数学这样学
五年级简易方程入门:4步解题法+3类典型题详解
焦虑症躯体化症状:从医学解读到科学应对
房产证加名有哪些流程和费用
旅行选择困难症:杭州、苏州、扬州,哪座城市才是最正宗的江南?
父母的房产证上能不能加子女名字
《<敕勒歌>新解:从战败军中的抚慰之歌到草原史诗》
《敕勒歌》:一首北朝民歌里的战败者回望
战败之际为何吟唱《敕勒歌》?解密北朝民歌的深层意蕴
研究发现:这样运动,才能有效延缓衰老
有这4种表现,说明大脑开始衰老了!7种方法可延缓大脑老化
研究建议:学会这样吃饭,即使从老年开始,也能延缓衰老,改善健康状态
盐城装修费用大揭秘:地段决定价格
鸡蛋食用指南:水煮最营养,每天1-2个为宜
鸡蛋荣登“维他命之王”:维生素A、E含量居三蛋之首
每天一个鸡蛋,护脑又护心:专家解读鸡蛋营养价值与食用指南
装修费用管理,这些技巧让你省钱又省心
长沙装修贷款攻略:装修贷vs信用贷,哪种更适合你?
重庆装修预算攻略:省钱秘籍大公开