stm32f103c8t6最小系统板串口实验
时间: 2025-01-02 09:25:44 浏览: 9
### STM32F103C8T6 最小系统板串口通信实验
#### 实验目的
通过本实验了解如何配置并实现STM32F103C8T6最小系统板上的UART(通用异步收发传输器)进行基本的数据发送和接收操作。
#### 硬件准备
为了完成此次实验,需准备好如下硬件资源:
- STM32F103C8T6最小系统板一块[^1]
- USB转TTL模块一个,用于连接电脑与开发板之间的串行通讯线路[^2]
#### 软件环境搭建
建议使用官方支持良好的IDE工具链如Keil MDK或STM32CubeMX配合HAL库来简化编程工作。安装好必要的驱动程序后,在计算机上打开相应的集成开发环境设置新工程文件夹路径以及目标器件型号为`STM32F103C8Tx`.
#### UART初始化函数编写
在主循环之前定义全局变量保存波特率参数,并调用相应API接口完成USART外设的初始化过程:
```c
#include "usart.h"
// 初始化 USART1, 设置波特率为 9600 bps
void MX_USART1_UART_Init(void){
huart1.Instance = USART1;
huart1.Init.BaudRate = 9600; // 波特率设定为9600bps
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart1) != HAL_OK){
Error_Handler();
}
}
```
上述代码片段展示了如何创建一个名为`MX_USART1_UART_Init()` 的函数用来启动USART1端口的工作模式,其中包含了对各个属性的具体赋值语句[^3].
#### 数据发送测试
接下来可以在main() 函数内部加入一段简单的字符串输出逻辑作为验证手段:
```c
int main(void){
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
SystemClock_Config(); // 配置系统时钟
MX_GPIO_Init(); // GPIO初始化
MX_USART1_UART_Init();// USART初始化
char *hello_world="Hello World!\r\n";
while(1){
HAL_UART_Transmit(&huart1,(uint8_t*)hello_world,strlen(hello_world),HAL_MAX_DELAY);
HAL_Delay(1000); // 延迟一秒再重复执行
}
}
```
这段源码实现了每隔一秒钟向终端打印一次“Hello World!”消息的功能,从而证明了串口已经正常运作起来.
阅读全文