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

一、硬件及软件版本

1、MCU型号:STM32F103ZETX

2、软件版本:STM32 Cube MX 5.4.0

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

 

二、轮询方式

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

STM32 Cube系列之串口通信(一)_第1张图片

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

STM32 Cube系列之串口通信(一)_第2张图片

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

STM32 Cube系列之串口通信(一)_第3张图片

4、配置时钟。

STM32 Cube系列之串口通信(一)_第4张图片

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

STM32 Cube系列之串口通信(一)_第5张图片

STM32 Cube系列之串口通信(一)_第6张图片

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

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

8、添加应用程序。

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

/* 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)连接后串口助手实际测试。黑色框表示接收到的数据。紫红色框表示发送的数据。发送数据和接收数据一致。

STM32 Cube系列之串口通信(一)_第7张图片

 

 

你可能感兴趣的:(STM32 Cube系列之串口通信(一))