打印
[LKS32 软件]

LKS32MC07EM6S8B的串口无法使用,求助!!!

[复制链接]
732|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
清风伴酒|  楼主 | 2024-7-2 17:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LKS32MC07EM6S8B的串口无法使用(不能收发数据),使用的03系列串口demo工程修改的程序,使用P1.8和P1.9做串口的数据收发,修改了GPIO的初始化引脚以及串口的波特率,其他的未做修改,启用了复用以及SYS_IO_CFG清零。详细如下,望能帮助解决,谢谢
GPIO和串口初始化
/*******************************************************************************
函数名称:    void GPIO_init(void)
功能描述:    GPIO硬件初始化
输入参数:    无
输出参数:    无
返 回 值:    无
其它说明:
修改日期      版本号          修改人            修改内容
-----------------------------------------------------------------------------
2022/4/14     V1.0          HuangMG             创建
*******************************************************************************/

void GPIO_init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_StructInit(&GPIO_InitStruct);

        /* 写保护开启 */       
        SYS_WR_PROTECT = 0x7a83;   
               
    /* change SWCKL AND SWDIO TO GPIO */
    SYS_IO_CFG &= (~BIT6);

    /* P0.9-RX0, P0.8-TX0  UART0 */
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStruct.GPIO_Pin =  GPIO_Pin_9;
    GPIO_Init(GPIO1, &GPIO_InitStruct);

        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;
    GPIO_InitStruct.GPIO_Pin =  GPIO_Pin_8;
    GPIO_Init(GPIO1, &GPIO_InitStruct);

    GPIO_PinAFConfig(GPIO1, GPIO_PinSource_8, AF4_UART); //P0.9复用为UART_RX
    GPIO_PinAFConfig(GPIO1, GPIO_PinSource_9, AF4_UART); //P0.7复用为UART_TX
       
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStruct.GPIO_Pin =  GPIO_Pin_7;
    GPIO_Init(GPIO1, &GPIO_InitStruct);
}

/*******************************************************************************
函数名称:    void UART_init(void)
功能描述:    串口硬件初始化
输入参数:    无
输出参数:    无
返 回 值:    无
其它说明:
修改日期      版本号          修改人            修改内容
-----------------------------------------------------------------------------
2022/4/14     V1.0          HuangMG             创建
*******************************************************************************/
void UART_init(void)
{
    UART_InitTypeDef UART_InitStruct;

    UART_StructInit(&UART_InitStruct);
    UART_InitStruct.BaudRate     = 38400;                /* 设置波特率9600 */
    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(UART0, &UART_InitStruct);
}
//下面是串口的中断
/*******************************************************************************
函数名称:    void UART_IRQHandler(void)
功能描述:    UART中断处理函数
输入参数:    无
输出参数:    无
返 回 值:    无
其它说明:
修改日期      版本号          修改人            修改内容
-----------------------------------------------------------------------------
2021/11/15      V1.0        HuangMG        创建
*******************************************************************************/
u8 Uart0_Buff = 0;
void UART_IRQHandler(void)
{
        if (UART_GetIRQFlag(UART0, UART_IF_SendOver))    // 发送完成中断
        {
                UART_ClearIRQFlag(UART0, UART_IF_SendOver);  // 清除发送完成标志位
        }
        if (UART_GetIRQFlag(UART0, UART_IF_RcvOver))     // 接收完成中断
        {
                UART_ClearIRQFlag(UART0, UART_IF_RcvOver);         // 清除接收完成标志位
                Uart0_Buff = UART_ReadData(UART0);                         // 接收 1 Byte数据
                printf("Hellow word = %d \n\r", Uart0_Buff); // 发送数据
        }
}

//主函数程序
int main(void)
{
        Hardware_init(); /* 硬件初始化 */
        for (;;)
        {
                UART_SendData(UART0, 0x66);
                Invers_GPIO(GPIO1,GPIO_Pin_7);
                printf("Hellow word!"); // 发送数据
                delay_ms(100);
        }
}

使用特权

评论回复
沙发
MYWX| | 2024-7-4 13:59 | 只看该作者
看一下芯片手册,1.8是TX,需要配置成输出,你配置的输入,正好搞反了

使用特权

评论回复
板凳
shenxiaolin| | 2024-7-22 16:45 | 只看该作者
你看看你的引脚是否正确,还有就是电平信号是否正确。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝