一、串口应用概述
本文重点叙述使用串口打印其他寄存器内的数据,并且使用STM32的HAL库进行代码编写。
对于串口这个外设,我们一开始接触的就是(串口与上位机通信)用串口返回我们发送的数据。这个实验,可以让我们对串口有一个较为直观的感受。
在这个实验中,串口打印的数据来自串口自身的数据寄存器中的数据,但在实际调试和应用中,我们需要使用串口打印其他寄存器中的数据,此时的串口就像程序的一个“窗口”,我们通过这个“窗口”查看程序中其他寄存器中的数据是否正常,以此来判断程序是否正常运行。
二、操作步骤
使用串口打印其他寄存器内的数据,需要遵循一下步骤:
①串口初始化
配置串口波特率、数据位、停止位和奇偶校验等串口通信参数。并且设置GPIO引脚为串口功能,启用串口时钟,以及配置串口的工作模式和中断。
②读取寄存器数据
编写代码来读取想要的寄存器的值。这涉及到直接操作内存地址或使用特定的寄存器读函数。
③通过串口发送数据
使用HAL库提供的串口发送函数(如HAL_UART_Transmit
)将数据发送出去。
④通过上位机接收数据
打开上位机,配置与串口相同的通信参数,以接收和显示通过串口发送的寄存器数据。
三、示例代码
#注意:示例代码只包含步骤②③,示例代码以STM32F103为例。
int main(void)
{
HAL_Init();
SystemClock_Config();
USART1_UART_Init();
uint32_t registerAddress = 0x40021000; /* 示例寄存器地址 */
uint32_t dataLength = 4; /* 寄存器数据长度 */
uint32_t registerValue;
registerValue = *(__IO uint32_t *)registerAddress; /* 读取寄存器的值 */
HAL_UART_Transmit(&huart1, (uint8_t *)®isterValue, dataLength, HAL_MAX_DELAY);
/* 使用HAL库函数发送数据 */
while (1)
{
/* 主循环中可以执行其他任务,例如闪烁LED,以指示程序正在运行 */
}
}
#注意:步骤②和步骤③是串口作为“窗口”应用的核心
标签:HAL,示例,串口,打印,寄存器,数据,uint32 From: https://blog.csdn.net/aElect/article/details/142776414