使用STM32CubeMX对STM32F4进行串口配置

1. 配置

1.1 Pin脚

在这里插入图片描述

1.2 RCC开启外部晶振

在这里插入图片描述

1.3 时钟

外部使用8MHz晶振
开启内部16MHz晶振
使用锁相环
开启最高100MHz。

在这里插入图片描述

1.4 串口配置

串口1/2配置相同

在这里插入图片描述
在这里插入图片描述

2. 代码

2.1 默认生成代码

  MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();

2.1 开启串口中断函数

添加在串口初始化之后

uint8_t aRxBuffer_1[1200]; //接收数据保存数组
HAL_UART_Receive_IT(&huart1,aRxBuffer_1,1);			// Enable the USART1 Interrupt

2.3 接收中断

在stm32f4xx_it.c中

void USART1_IRQHandler(void)
{
  /* USER CODE BEGIN USART1_IRQn 0 */

  /* USER CODE END USART1_IRQn 0 */
  HAL_UART_IRQHandler(&huart1);
  /* USER CODE BEGIN USART1_IRQn 1 */

  /* USER CODE END USART1_IRQn 1 */
}

2.4 接收回调函数

这个部分需要自己编辑

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance == USART1)	// 判断串口号
	{
		HAL_UART_Transmit(&huart1,aRxBuffer1,1,100);	// 返回数据
		HAL_UART_Receive_IT(&huart1,aRxBuffer1,1);		// 使能串口1接收中断
	}
	if(huart->Instance == USART2)	// 判断串口号
	{
		HAL_UART_Transmit(&huart2,aRxBuffer2,1,100);	// 返回数据
		HAL_UART_Receive_IT(&huart2,aRxBuffer2,1);		// 使能串口1接收中断
	}
}

2.5 增加Printf 的使用

在usart.c中,添加代码,同时添加引用头文件,接下来 printf 即可使用,使用 printf 的地方,同样需要引用头文件
#include <stdio.h>

/* USER CODE BEGIN 1 */

int fputc(int ch, FILE *f)//printf
{
	HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1,0xffff);  //
	return (ch);
}

/* USER CODE END 1 */
/* USER CODE BEGIN 0 */
#include <stdio.h>
/* USER CODE END 0 */

相关推荐

  1. stm32 串口配置

    2024-04-30 08:06:02       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-30 08:06:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-30 08:06:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-30 08:06:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-30 08:06:02       20 阅读

热门阅读

  1. 介绍一个在数据分析中常用的函数:data.iloc[]

    2024-04-30 08:06:02       14 阅读
  2. Tomcat Bootstrap init()

    2024-04-30 08:06:02       11 阅读
  3. CAPM模型特点

    2024-04-30 08:06:02       9 阅读
  4. Google云平台(Google Cloud Platform,简称GCP)

    2024-04-30 08:06:02       14 阅读
  5. Spring Boot面试知识点总结(经典15问)

    2024-04-30 08:06:02       12 阅读
  6. 2024.4.29力扣每日一题——将矩阵按对角线排序

    2024-04-30 08:06:02       12 阅读
  7. Selenium的基本使用

    2024-04-30 08:06:02       13 阅读
  8. 基本排序算法

    2024-04-30 08:06:02       9 阅读