金牌会员
- 积分
- 1136
- 金钱
- 1136
- 注册时间
- 2015-11-29
- 在线时间
- 146 小时
|
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);
发送和接收都没有反应。。请大家帮忙看看哪里设置有问题。。。
|
|