STM32H743使用寄存器编写代码,单片机发送两个字节到串口调试助手
时间: 2023-07-22 17:08:31 浏览: 367
STM32H743 串口DMA方式驱动程序 供参考
你可以使用STM32H743的寄存器来配置串口并发送数据。以下是一个使用寄存器编写代码的示例,用于发送两个字节到串口调试助手:
```c
#include "stm32h7xx.h"
void USART2_Init(void)
{
// 使能USART2时钟
RCC->APB1ENR1 |= RCC_APB1ENR1_USART2EN;
// 配置GPIOA引脚
RCC->AHB4ENR |= RCC_AHB4ENR_GPIOAEN;
// 配置引脚PA2作为USART2的TX引脚
GPIOA->MODER &= ~GPIO_MODER_MODE2_Msk;
GPIOA->MODER |= GPIO_MODER_MODE2_1;
GPIOA->AFR[0] &= ~GPIO_AFRL_AFSEL2_Msk;
GPIOA->AFR[0] |= 7UL << GPIO_AFRL_AFSEL2_Pos;
// 配置USART2
USART2->CR1 &= ~USART_CR1_UE; // 禁用USART2
USART2->CR1 = 0; // 清除配置
USART2->BRR = 0x1A0; // 设置波特率为115200(根据时钟频率调整)
USART2->CR1 |= USART_CR1_TE; // 使能发送
USART2->CR1 |= USART_CR1_UE; // 使能USART2
}
void USART2_Send(uint8_t data)
{
while ((USART2->ISR & USART_ISR_TXE) == 0); // 等待发送缓冲区为空
USART2->TDR = data; // 发送数据
}
int main(void)
{
USART2_Init();
// 发送两个字节
USART2_Send(0xAB);
USART2_Send(0xCD);
while (1)
{
// 主循环
}
}
```
在上述代码中,我们首先定义了`USART2_Init`函数来配置USART2串口的GPIO引脚和寄存器设置。然后,我们定义了`USART2_Send`函数来发送一个字节的数据。
在`main`函数中,我们初始化USART2串口,并使用`USART2_Send`函数发送两个字节(0xAB和0xCD)到串口调试助手。然后我们进入一个无限循环,以保持程序运行。
请注意,以上代码仅是一个示例,你需要根据实际情况进行适当的更改。具体的时钟配置和引脚配置可能因单片机的不同而有所不同。
阅读全文