初级会员
- 积分
- 71
- 金钱
- 71
- 注册时间
- 2016-1-21
- 在线时间
- 18 小时
|
5金钱
我按照例程LPUART1的写法,改LPUART4的配置,发送数据,一直接受不到,找了半天也没发现那里配置错误。
初始化函数
void LPUART4_Init(u32 bound)
{
u32 freq=0; //′®¿úμÄê±ÖóÔ′ÆμÂê
CLOCK_EnableClock(kCLOCK_Lpuart4); //ê1ÄüLPUART4ê±Öó
CLOCK_SetMux(kCLOCK_UartMux,0); //éèÖÃUARTê±ÖóÔ′ÎaPLL3 80Mhz£¬LL3/6=480/6=80MHz
CLOCK_SetDiv(kCLOCK_UartDiv,0); //éèÖÃUARTê±Öó1·ÖÆ죬¼′UARTê±ÖóÎa80Mhz
//LPUART4Ëùê1óÃμÄIO1|ÄüÅäÖ㬼′£o′óALT0~ALT7Ñ¡ÔñoÏêêμÄ1|Äü¡£
IOMUXC_SetPinMux(IOMUXC_GPIO_B1_00_LPUART4_TX,0U);
IOMUXC_SetPinMux(IOMUXC_GPIO_B1_01_LPUART4_RX,0U);
//ÅäÖÃIOòy½ÅGPIO_AD_B0_12oíGPIO_AD_B0_13μÄ1|Äü
//μí×a»»Ëù¶è,Çy¶ˉÄüá|ÎaR0/6,Ëù¶èÎa100Mhz£¬1رտa·1|Äü£¬ê1Äüpull/keepr
//Ñ¡Ôñkeeper1|Äü£¬ÏÂà-100K Ohm£¬1رÕHyst
IOMUXC_SetPinConfig(IOMUXC_GPIO_B1_00_LPUART4_TX,0x10B0u);
IOMUXC_SetPinConfig(IOMUXC_GPIO_B1_01_LPUART4_RX,0x10B0u);
freq=LPUART_SrcFreqGet();
LPUART_GetDefaultConfig(&lpuart4_config); //ÏèéèÖÃÎaĬèÏÅäÖã¬oóÃæÔú¸ù¾Yêμ¼êÇé¿öÅäÖÃ
lpuart4_config.baudRate_Bps=bound; //2¨ìØÂê
lpuart4_config.dataBitsCount=kLPUART_EightDataBits; //8λ
lpuart4_config.stopBitCount=kLPUART_OneStopBit; //1λí£Ö1λ
lpuart4_config.parityMode=kLPUART_ParityDisabled; //ÎTÆæżD£Ñé
lpuart4_config.enableRx=true; //ê1Äü½óêÕ
lpuart4_config.enableTx=true; //ê1Äü·¢Ëí
LPUART_Init(LPUART4,&lpuart4_config,freq); //3õê¼»ˉLPUART4
#if EN_LPUART4_RX //êÇ·ñDèòa¿aÆôÖD¶Ï?
//LPUARTÖD¶ÏéèÖÃ
LPUART_EnableInterrupts(LPUART4,kLPUART_RxDataRegFullInterruptEnable); //ê1Äü½óêÕÖD¶Ï
RT1052_NVIC_SetPriority(LPUART4_IRQn,5,0); //ÇàÕ¼óÅÏ輶5£¬×óóÅÏ輶0
EnableIRQ(LPUART4_IRQn); //ê1ÄüLPUART1ÖD¶Ï
#endif
}
发送函数
void LPUART4_WriteBytes(const uint8_t *data, size_t length)
{
while (length--)
{
while (!(LPUART4->STAT & LPUART_STAT_TDRE_MASK))
{
}
LPUART4->DATA = *(data++);
}
}
LPUART1也是用这个发送函数,可以收到正确数据。
|
|