先放出双串口的代码,很多时候我们要利用一个串口仿造写出另一个串口的时候,时而失败。我通过改了几次HT32的代码之后发现主要问题出现在宏定义这边。
usart.c文件
#include "usart.h"
#include "ht32f5xxxx_gpio.h"
/**************************实现函数********************************************
函数说明:配置usart串口
*******************************************************************************/
void USART_Configuration(void)
{
USART_InitTypeDef USART_InitStructure;
{
CKCU_PeripClockConfig_TypeDef CKCUClock = {
{0}};
CKCUClock.Bit.AFIO = 1;
CKCUClock.Bit.PA = 1;
CKCUClock.Bit.USART1 = 1;
CKCU_PeripClockConfig(CKCUClock, ENABLE);
}
{
CKCU_PeripClockConfig_TypeDef CKCUClock = {
{0}};
CKCUClock.Bit.AFIO = 1;
CKCUClock.Bit.PA = 1;
CKCUClock.Bit.USART0 = 1;
CKCU_PeripClockConfig(CKCUClock, ENABLE);
}
GPIO_PullResistorConfig(HT_GPIOA, GPIO_PIN_15, GPIO_PR_UP); //记得这里也要改
GPIO_PullResistorConfig(HT_GPIOA, GPIO_PIN_3, GPIO_PR_UP);
AFIO_GPxConfig(GPIO_PA, AFIO_PIN_14, AFIO_FUN_USART_UART);//如果要使用数据线进行串口通信功能,把PA14 15改成PA4 5
AFIO_GPxConfig(GPIO_PA, AFIO_PIN_15, AFIO_FUN_USART_UART);//并且把开发板的跳线帽接到Tx端
AFIO_GPxConfig(GPIO_PA, AFIO_PIN_2, AFIO_FUN_USART_UART);
AFIO_GPxConfig(GPIO_PA, AFIO_PIN_3, AFIO_FUN_USART_UART);
/*
波特率: 115200
长度: 8bits
停止位: 1位
校验位: 无
模式: 正常模式
*/
USART_InitStructur