STM32H743使用寄存器编写代码,单片机一个函数发送一个字到串口调试助手
时间: 2024-04-16 17:28:36 浏览: 97
您可以使用以下代码将一个字发送到串口调试助手:
```c
#include "stm32h7xx.h"
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
{
USARTx->TDR = (Data & 0xFF);
while(!(USARTx->ISR & USART_ISR_TXE));
}
int main(void)
{
// 初始化串口
RCC->AHB4ENR |= RCC_AHB4ENR_GPIOAEN; // 使能GPIOA时钟
RCC->APB2ENR |= RCC_APB2ENR_USART1EN; // 使能USART1时钟
// 配置GPIO引脚
GPIOA->MODER &= ~(GPIO_MODER_MODE9 | GPIO_MODER_MODE10);
GPIOA->MODER |= (GPIO_MODER_MODE9_1 | GPIO_MODER_MODE10_1); // AF mode
GPIOA->AFR[1] &= ~(GPIO_AFRH_AFSEL9 | GPIO_AFRH_AFSEL10);
GPIOA->AFR[1] |= (7 << GPIO_AFRH_AFSEL9_Pos) | (7 << GPIO_AFRH_AFSEL10_Pos); // AF7 (USART1)
// 配置USART
USART1->CR1 &= ~USART_CR1_UE; // 关闭USART1
USART1->CR1 &= ~USART_CR1_M; // 8位数据
USART1->CR2 &= ~USART_CR2_STOP; // 1个停止位
USART1->BRR = 0x8B; // 波特率设置 (115200 @ 80MHz)
USART1->CR1 |= USART_CR1_TE; // 使能发送
USART1->CR1 |= USART_CR1_UE; // 使能USART1
// 发送数据
USART_SendData(USART1, 'A'); // 发送字母'A'
while(1)
{
// 主循环
}
}
```
请注意,以上代码仅发送一个字母'A'到串口调试助手。您可以根据需要进行修改。
阅读全文