stm32g431rbt6 串口打印
时间: 2025-01-30 15:53:06 浏览: 49
### STM32G431RBT6 实现 UART 串口打印方法
#### 初始化硬件抽象层 (HAL)
为了使能UART外设并初始化它,在程序启动阶段需调用`MX_USART1_UART_Init()`函数完成USART1的初始化设置。此过程通常由STM32CubeMX自动生成代码处理。
```c
// USART1 Initialization Function
void MX_USART1_UART_Init(void)
{
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
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();
}
}
```
#### 编写发送函数
创建一个简单的发送字符串至UART接口的辅助函数,该函数接受待发送的消息作为输入参数,并利用`sprintf`构建消息内容存入字符数组中[^5]。随后调用`HAL_UART_Transmit`将数据实际发出。注意这里对传入的数据指针进行了`(uint8_t *)`类型的强制转换以匹配API需求[^3]。
```c
#include "stm32g4xx_hal.h"
UART_HandleTypeDef huart1;
void SendString(const char* message){
char buffer[50];
sprintf(buffer,"%s",message);
/* Transmit the string */
HAL_StatusTypeDef status = HAL_UART_Transmit(&huart1, (uint8_t*)buffer, strlen(buffer), 1000);
if(status != HAL_OK){
// Handle error here
}
}
int main(){
// Initialize peripherals and other setup code...
while(1){
SendString("Hello from STM32!\r\n");
// Add delay or perform other tasks...
}
return 0;
}
```
上述例子展示了如何定义一个用于发送固定文本信息的简单功能。对于更复杂的应用场景,则可以根据具体需求调整缓冲区大小以及优化错误处理逻辑。
阅读全文
相关推荐


















