yhw251314 发表于 2025-7-24 18:11

LKS32MC057M6S8的UART通讯i/o口发送不出数据

哪位大佬能帮忙看看程序下载进去后,芯片的通讯i/o口为啥发送不出数据
void GPIO_init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_StructInit(&GPIO_InitStruct);

          /*UART1 P2.5-TX0*/
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
                GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIO2, &GPIO_InitStruct);
                GPIO_PinAFConfig(GPIO2, GPIO_PinSource_5, AF4_UART);// P2.5 复用成UART1_TX                       
}
void UART_init(void)
{
    UART_InitTypeDef UART_InitStruct;

    UART_StructInit(&UART_InitStruct);
    UART_InitStruct.BaudRate   = 19200;               /* 设置波特率19200 */
    UART_InitStruct.WordLength   = UART_WORDLENGTH_8b ;/* 发送数据长度8位 */
    UART_InitStruct.StopBits   = UART_STOPBITS_1b;   /* 停止位长度1位 */
    UART_InitStruct.FirstSend    = UART_FIRSTSEND_LSB;   /* 先发送LSB */
    UART_InitStruct.ParityMode   = UART_Parity_NO;       /* 无奇偶校验 */
          UART_InitStruct.RXD_INV      = DISABLE;            /* RXD电平正常输出*/            
          UART_InitStruct.TXD_INV      = DISABLE;            /* TXD电平正常输出*/       
    UART_InitStruct.IRQEna = UART_IRQEna_SendOver | UART_IRQEna_RcvOver;/*使能接收和发送完成中断*/
    UART_Init(UART1, &UART_InitStruct);
}
u8 UART_Value = 0;
void UART1_IRQHandler(void)
{
        if (UART1_IF & UART_IF_SendOver) //发送完成中断
        {
                UART1_IF = UART_IF_SendOver;
        }
        if (UART1_IF & UART_IF_RcvOver) //接收完成中断
        {
                UART1_IF = UART_IF_RcvOver;
                UART_Value = UART1->BUFF;
        }
}
int main(void)
{
        Hardware_init(); /* 硬件初始化 */
        while (1)
        {
//        GPIO_SetBits(GPIO0, GPIO_Pin_10);
//        GPIO_ResetBits(GPIO2, GPIO_Pin_5);
                UART_SendData(UART1, 0xAA); //发送数据
                SoftDelay(0xFFFFFF);
        }
}

yhw251314 发表于 2025-7-24 18:11

谁能帮忙解决一下有小红包求求了

木鱼21 发表于 2025-7-27 00:09

没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

yhw251314 发表于 2025-7-28 09:31

木鱼21 发表于 2025-7-27 00:09
没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

这个我在void Hardware_init(void)这里面定义了
NVIC_EnableIRQ(UART1_IRQn);      /* 使能UART_IRQn外部中断*/
NVIC_SetPriority(UART1_IRQn, 0); /* UART_IRQn外部中断优先级设置为0*/

yhw251314 发表于 2025-7-28 09:33

木鱼21 发表于 2025-7-27 00:09
没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

gpio、gpio的复用、uart和中断我都配置好了,就是不知道为啥程序下载进去发送不出数据,之前stm32把这几个配置好后他就能能发出了。

yhw251314 发表于 2025-7-28 09:45

木鱼21 发表于 2025-7-27 00:09
没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

我debug的时候,看UART1_IF的值是0x0000000C,这个值我感觉有问题。但是不知道哪里配置错了

yhw251314 发表于 2025-7-28 11:41

木鱼21 发表于 2025-7-27 00:09
没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

解决了有数据发出来了

木鱼21 发表于 2025-7-28 14:48

yhw251314 发表于 2025-7-28 11:41
解决了有数据发出来了

怎么弄的?

yhw251314 发表于 2025-7-28 15:27

木鱼21 发表于 2025-7-28 14:48
怎么弄的?

早上下进去后他是有数据输出了,但是重新下载程序进去又不行了{:mad:}程序应该是没问题的不知道是不是板子的问题
页: [1]
查看完整版本: LKS32MC057M6S8的UART通讯i/o口发送不出数据