Files
DCU_APP/GD32E508_DCU_APP/device/usart0.cpp.bak_txisr
T
cbb 4b8b47bc9b feat: 添加GD32E508 DCU应用工程的初始结构
- 新增完整的CMSIS解决方案配置,包含AC6/GCC/IAR/CLANG编译器支持
- 添加项目配置文件,定义了设备层、系统层、应用层的模块结构
- 配置ARM::CMSIS和GigaDevice::GD32E50x_DFP软件包依赖
- 创建多层代码架构:应用入口(main)、系统层(sys)、设备层(device)
- 实现任务管理系统,包含任务调度器和任务执行器分离设计
- 集成ADC、CANFD、定时器、串口、温度采样等核心功能模块
- 添加详细的README文档说明项目结构和代码组织方式
- 配置AC6链接脚本和运行时环境文件
- 设置Git忽略规则以排除编译产物和临时文件
2026-05-10 17:28:14 +08:00

54 lines
1.4 KiB
Plaintext

/**
* @file usart0.cpp
* @brief USART0 串口配置与 printf 重定向实现。
*/
#include "main.h"
#include "device/usart0.h"
#include "sys/config.h"
#define USARTx USART0
/**
* @brief 重定向标准输出字符到 USART0。
* @param[in] ch 待输出的字符。
* @param[in] f 标准流指针;当前实现中未实际使用。
* @retval 返回已发送的字符值。
*/
extern "C" int fputc(int ch, FILE *f)
{
(void)f;
while(RESET == usart_flag_get(USARTx, USART_FLAG_TBE)) {
}
usart_data_transmit(USARTx, (uint16_t)ch);
return ch;
}
/**
* @brief 配置 USART0 相关 GPIO 引脚。
*/
void usart0_gpio_config(void)
{
rcu_periph_clock_enable(RCU_GPIOA);
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
}
/**
* @brief 配置并使能 USART0 外设。
* @note 当前使用 8N1 格式,115200 波特率,收发同时使能。
*/
void usart0_config(void)
{
rcu_periph_clock_enable(RCU_USART0);
usart_deinit(USARTx);
usart_baudrate_set(USARTx, CONFIG_USART0_BAUDRATE);
usart_word_length_set(USARTx, USART_WL_8BIT);
usart_stop_bit_set(USARTx, USART_STB_1BIT);
usart_parity_config(USARTx, USART_PM_NONE);
usart_receive_config(USARTx, USART_RECEIVE_ENABLE);
usart_transmit_config(USARTx, USART_TRANSMIT_ENABLE);
usart_enable(USARTx);
}