OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3757|回复: 1

RT1052串口4设置无法通讯

[复制链接]

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
发表于 2019-1-4 13:58:45 | 显示全部楼层 |阅读模式
1金钱
我在原有串口1的基础上添加串口4功能调试,串口1正常收发,串口4没有收发,跳线帽选择com4_rx和com4_tx。程序设置如下:
void LPUART4_Init(u32 bound)
{       
        u32 freq=0;                                                       
       
        CLOCK_EnableClock(kCLOCK_Lpuart4);       
       
        //CLOCK_SetMux(kCLOCK_UartMux,0);         //串口时钟在串口1的时候已经设置这里我就直接注销了。
        //CLOCK_SetDiv(kCLOCK_UartDiv,0);         //
       
       
        IOMUXC_SetPinMux(IOMUXC_GPIO_B1_00_LPUART4_TX,0U);       
        IOMUXC_SetPinMux(IOMUXC_GPIO_B1_01_LPUART4_RX,0U);       

       
        IOMUXC_SetPinConfig(IOMUXC_GPIO_B1_00_LPUART4_TX,0x10B0u);
        IOMUXC_SetPinConfig(IOMUXC_GPIO_B1_01_LPUART4_RX,0x10B0u);

        freq=LPUART4_SrcFreqGet();       
       
        LPUART_GetDefaultConfig(&lpuart4_config);                                
        DbgConsole_Init(BOARD_DEBUG_UART4_BASEADDR,bound,BOARD_DEBUG_UART4_TYPE,freq);
       
        lpuart4_config.baudRate_Bps=bound;                                               
        lpuart4_config.dataBitsCount=kLPUART_EightDataBits;               
        lpuart4_config.stopBitCount=kLPUART_OneStopBit;                       
        lpuart4_config.parityMode=kLPUART_ParityDisabled;               
        lpuart4_config.enableRx=true;                                                       
        lpuart4_config.enableTx=true;                                                       
       
        LPUART_Init(LPUART4,&lpuart4_config,freq);                               

#if EN_LPUART4_RX                                                                               
       
        LPUART_EnableInterrupts(LPUART4,kLPUART_RxDataRegFullInterruptEnable);
        RT1052_NVIC_SetPriority(LPUART4_IRQn,5,0);                               
        EnableIRQ(LPUART4_IRQn);                                  
#endif
}       

中断函数
void LPUART4_IRQHandler(void)
{
        u8 res=0;
       
        if((LPUART4->STAT)&kLPUART_RxDataRegFullFlag)
        {
               
                res=LPUART4->DATA;
                       
                if((LPUART4_RX_STA&0x8000)==0)               
                {
                        LPUART4_RX_BUF[LPUART_RX_STA&0X3FFF]=res ;
                                        LPUART4_RX_STA++;
                       
                }
        }
        __DSB();                               
}

发送函数
LPUART_WriteBlocking(LPUART4,LPUART_RX_BUF,LPUART4_RX_STA&0x3fff);
发送和接收都没有反应。。请大家帮忙看看哪里设置有问题。。。

最佳答案

查看完整内容[请看2#楼]

可以了,是IO选择不对
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
 楼主| 发表于 2019-1-4 13:58:46 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表