CH32V307VCT6 复用UART7至PE12/PE13不起作用
#include "debug.h"

int main(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    SystemCoreClockUpdate();
    Delay_Init();
  
    GPIO_InitTypeDef  GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;

    GPIO_StructInit(&GPIO_InitStructure);
    USART_StructInit(&USART_InitStructure);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART7, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

    GPIO_PinRemapConfig(GPIO_FullRemap_USART7, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOE, &GPIO_InitStructure);

    USART_InitStructure.USART_BaudRate = 115200;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_Parity = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode = USART_Mode_Tx;

    USART_Init(UART7, &USART_InitStructure);
    USART_Cmd(UART7, ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitTypeDef GPIO_InitStruct;

    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;

    GPIO_Init(GPIOA, &GPIO_InitStruct);UART


    while (1)
    {
        while(USART_GetFlagStatus(UART7, USART_FLAG_TC) == RESET);
        USART_SendData(UART7, '6');
        

        Delay_Ms(100);
        GPIO_WriteBit(GPIOA, GPIO_Pin_15, SET);
        Delay_Ms(100);
        GPIO_WriteBit(GPIOA, GPIO_Pin_15, RESET);
    }

    return 0;
}

代码如上

现象是PE12不输出串口信号

您好,用您的代码测试串口7是可以正常输出的,可以判断下代码是否正常运行,看下是否是硬件上有什么不合理的地方

image.png


好的,谢谢,我再检查下硬件


但是我单独对PE12写高低电平(不复用的情况下,就把它用作一个单纯的gpio),用万用表是可以在排针上检测到3.3V跟0V的

另外排线检查过是接触良好的,现在我只能怀疑我买到的核心板设计有问题或者上面的那颗芯片是坏的


用逻辑分析仪抓波形,一切正常

检查发现是VOFA+(一个串口调试助手)配置不对



只有登录才能回复,可以选择微信账号登录