STM32 Cube系列之串口通信(一)

一、硬件及软件版本

1、MCU型号:STM32F103ZETX

2、软件版本:STM32 Cube MX 5.4.0

3、固件版本:STM32Cube FW_F1 V1.8.0

 

二、轮询方式

1、配置RCC。使用的开发板外接了8MHz的晶振。

2、配置SYS。使用的烧录方式是Jlink-SWD。选择Serial Wire即可烧录。(若不配置SYS则会出现无法烧录程序的情况)

3、配置USART。使用异步模式。波特率115200。

4、配置时钟。

5、配置项目名称等信息。

6、点击“GENERATE CODE”生成MDK项目。

7、打开生成的MDK项目。点击编译。此时编译结果为0错误0警告。

8、添加应用程序。

(1)在usart.c文件中加入以下代码。为了能使用printf(注意需要头文件:#include <stdio.h>)。

/* USER CODE BEGIN 1 */
#ifdef __GNUC__
	#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
	#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
		HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
		return ch;
}
/* USER CODE END 1 */

(2)在主函数中加入一下代码。实现将接收到的数据再发送出去。

		//死循环等待接收数据完成
		do
		{
			USART1_Buff.Status = HAL_UART_Receive(&huart1, USART1_Buff.Rx, sizeof(USART1_Buff.Rx),0xFFFF);
		}while(USART1_Buff.Status != HAL_OK);
		//将接收到的数据再发送出去
		HAL_UART_Transmit(&huart1, USART1_Buff.Rx, sizeof(USART1_Buff.Rx),0xFFFF);

(3)连接后串口助手实际测试。黑色框表示接收到的数据。紫红色框表示发送的数据。发送数据和接收数据一致。

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32CubeIDE是一款由STMicroelectronics提供的集成开发环境,用于开发STMicroelectronics的STM32微控制器。在STM32CubeIDE中,我们可以使用串口通信来与外部设备进行数据交互。 在使用STM32CubeIDE进行串口通信时,我们可以使用ST的HAL库来配置和控制串口。首先,我们需要选择合适的UART模块,并进行相应的初始化设置。以STM32F103C8T6为例,我们可以选择其中一个可用的UART模块,例如UART1。然后,在代码中引入相应的头文件,例如"stm32f1xx_hal_uart.h"。 接下来,我们需要配置UART的参数,例如波特率和数据位。可以使用HAL_UART_Init函数来初始化UART,并通过HAL_UART_ConfigChannel函数来配置通道。例如,我们可以使用115200的波特率,8位的数据位,并使能发送和接收功能。 然后,我们可以使用HAL_UART_Transmit函数来发送数据,例如使用printf函数打印调试信息。该函数需要传入UART的句柄、发送的缓冲区、缓冲区大小和超时时间。例如,我们可以使用以下代码来发送字符串"Hello, World!"到UART1。 ```c char* message = "Hello, World!"; HAL_UART_Transmit(&huart1, (uint8_t*)message, strlen(message), HAL_MAX_DELAY); ``` 在接收数据时,我们可以使用HAL_UART_Receive函数来接收数据。该函数需要传入UART的句柄、接收的缓冲区、缓冲区大小和超时时间。例如,我们可以使用以下代码来接收来自UART1的数据。 ```c char buffer[20]; HAL_UART_Receive(&huart1, (uint8_t*)buffer, sizeof(buffer), HAL_MAX_DELAY); ``` 总而言之,使用STM32CubeIDE进行串口通信相对简单,只需选择合适的UART模块,配置初始化参数,然后使用HAL库提供的函数发送和接收数据即可。通过printf函数可以方便地打印调试信息到串口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值