stm32f103c8t6 HAL 串口
时间: 2025-05-08 10:14:21 浏览: 17
### STM32F103C8T6 使用 HAL 库实现 UART 串口通信
STM32F103C8T6 是一款基于 ARM Cortex-M3 内核的微控制器,广泛应用于嵌入式开发领域。通过其硬件抽象层 (HAL) 库可以简化外设配置过程并提高代码可移植性。
以下是使用 HAL 库实现 UART 串口通信的一个典型示例:
#### 配置步骤说明
为了使能 UART 功能,需完成以下设置:
- 初始化时钟树以支持 USART 外设操作[^1]。
- 设置波特率参数 `-b` 和设备选项 `--dev` 来指定目标串口号及其工作模式。
#### 示例代码展示
下面提供一段完整的 C 语言程序用于演示如何初始化以及发送数据至 PC 终端软件(如 Tera Term 或 SecureCRT):
```c
#include "stm32f1xx_hal.h"
UART_HandleTypeDef huart1;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
int main(void){
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
uint8_t message[] = "Hello from STM32F103C8T6 via UART!\r\n";
while(1){
/* 发送字符串 */
HAL_UART_Transmit(&huart1,message,sizeof(message),100);
/* 延迟一段时间再重复传输 */
HAL_Delay(1000);
}
}
/* USART1 Initialization Function */
static void MX_USART1_UART_Init(void){
huart1.Instance = USART1;
huart1.Init.BaudRate = 9600; // 波特率为9600bps
huart1.Init.WordLength = UART_WORDLENGTH_8B;// 字符长度为8位
huart1.Init.StopBits = UART_STOPBITS_1; // 停止位数为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();
}
}
```
上述代码片段展示了基本框架结构,其中包含了必要的头文件引入、全局句柄定义、主函数逻辑构建等内容。
#### 注意事项
当实际部署此项目到具体板卡上运行前,请务必确认所选引脚映射关系正确无误,并依据实际情况调整相关参数值比如波特率等。
阅读全文
相关推荐


















