打印
[LKS32 软件]

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

[复制链接]
413|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yhw251314|  楼主 | 2025-7-24 18:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哪位大佬能帮忙看看程序下载进去后,芯片的通讯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:28 回复TA
这个我也设置了 void Hardware_init(void) { __disable_irq(); /* 关闭中断 中断总开关 */ SYS_WR_PROTECT = 0x7a83; /* 开启寄存器写使能 */ FLASH_CFG |= 0x00080000; /* enable prefetch */ GPIO_init(); /* GPIO初始化 */ UART_init(); /* UART初始化 */ SoftDelay(100); /* 等待硬件初始化完成 */ NVIC_EnableIRQ(UART1_IRQn); /* 使能UART_IRQn外部中...  
地板
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*/

使用特权

评论回复
5
yhw251314|  楼主 | 2025-7-28 09:33 | 只看该作者
木鱼21 发表于 2025-7-27 00:09
没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

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

使用特权

评论回复
6
yhw251314|  楼主 | 2025-7-28 09:45 | 只看该作者
木鱼21 发表于 2025-7-27 00:09
没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

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

使用特权

评论回复
7
yhw251314|  楼主 | 2025-7-28 11:41 | 只看该作者
木鱼21 发表于 2025-7-27 00:09
没有看到设置串口中断优先级和使能中断啊,你的有没有进中断?

解决了  有数据发出来了

使用特权

评论回复
8
木鱼21| | 2025-7-28 14:48 | 只看该作者
yhw251314 发表于 2025-7-28 11:41
解决了  有数据发出来了

怎么弄的?

使用特权

评论回复
9
yhw251314|  楼主 | 2025-7-28 15:27 | 只看该作者

早上下进去后他是有数据输出了,但是重新下载程序进去又不行了  程序应该是没问题的  不知道是不是板子的问题

使用特权

评论回复
评论
yhw251314 2025-7-28 15:31 回复TA
兄弟你也在弄LKS32MC057M6S8这个芯片吗,交流一下? 
yhw251314 2025-7-28 15:30 回复TA
我把停止位UART_STOPBITS_1b改成了UART_STOPBITS_2b 然后把中断函数里面UART_Value = UART1->BUFF;放到清除发送完成中断前面 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

0

粉丝