-
hc32l136 Lpuart发生异常
[align=left][font=宋体]当发送指令放置在接收中断时,一切正常。如果把发送中断移值主程序,偶尔就会出现发送指令不执行或延迟执行的现象[/font] [font=宋体]。[/font][/align][align=left]//===================================[/align][align=left][font=Calibri]// [/font][font=宋体]初始化[/font][font=Calibri]Lpuart[/font][/align][align=left]//===================================[/align][align=left]void lpuart_init(void)[/align][align=left]{[/align][align=left] uint16_t u16Scnt = 0;[/align][align=left] stc_gpio_config_t stcGpioCfg;[/align][align=left] stc_lpuart_sclk_sel_t stcSclk;[/align][align=left] stc_lpuart_config_t stcConfig;[/align][align=left] stc_lpuart_irq_cb_t stcLPUartIrqCb;[/align][align=left] stc_lpuart_multimode_t stcMulti;[/align][align=left] stc_lpuart_baud_t stcBaud;[/align][align=left] [/align][align=left] DDL_ZERO_STRUCT(stcConfig);[/align][align=left] DDL_ZERO_STRUCT(stcLPUartIrqCb);[/align][align=left] DDL_ZERO_STRUCT(stcMulti);[/align][align=left] DDL_ZERO_STRUCT(stcBaud);[/align][align=left] DDL_ZERO_STRUCT(stcGpioCfg);[/align][align=left] DDL_ZERO_STRUCT(stcSclk);[/align][align=left] [/align][align=left] Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);[/align][align=left] Sysctrl_SetPeripheralGate(SysctrlPeripheralLpUart1, TRUE);[/align][align=left] [/align][align=left] stcGpioCfg.enDir = GpioDirOut;[/align][align=left] Gpio_Init(GpioPortA, GpioPin0, &stcGpioCfg); //TX[/align][align=left] stcGpioCfg.enDir = GpioDirIn;[/align][align=left] stcGpioCfg.enPuPd = GpioPu;[/align][align=left] Gpio_Init(GpioPortA, GpioPin1, &stcGpioCfg); //RX[/align][align=left] [/align][align=left] Gpio_SetAfMode(GpioPortA, GpioPin0, GpioAf2);[/align][align=left] Gpio_SetAfMode(GpioPortA, GpioPin1, GpioAf2);[/align][align=left] [/align][align=left] [/align][align=left] stcLPUartIrqCb.pfnRxIrqCb = LPUartRxIntCallback;[/align][align=left] stcLPUartIrqCb.pfnTxIrqCb = NULL;[/align][align=left] stcLPUartIrqCb.pfnRxFEIrqCb = NULL;[/align][align=left] stcLPUartIrqCb.pfnPEIrqCb = NULL;[/align][align=left] stcLPUartIrqCb.pfnCtsIrqCb = NULL;[/align][align=left] stcConfig.pstcIrqCb = &stcLPUartIrqCb;[/align][align=left] stcConfig.bTouchNvic = TRUE;[/align][align=left] [/align][align=left] stcConfig.enStopBit = LPUart1bit;[/align][align=left] stcConfig.enRunMode = LPUartMode1;//[/align][align=left] stcSclk.enSclk_Prs = LPUart4Or8Div;[/align][align=left] stcSclk.enSclk_sel = LPUart_Rcl;[/align][align=left] stcConfig.pstcLpuart_clk = &stcSclk;[/align][align=left] [/align][align=left] [/align][align=left] stcMulti.enMulti_mode = LPUartNormal;[/align][align=left] stcConfig.pstcMultiMode = &stcMulti;[/align][align=left] [/align][align=left] LPUart_Init(LPUART1, &stcConfig);[/align][align=left] [/align][align=left] LPUart_SetClkDiv(LPUART1, LPUart4Or8Div);[/align][align=left] stcBaud.u32Sclk = LPUart_GetSclk(LPUART1);[/align][align=left] stcBaud.enRunMode = LPUartMode1;[/align][align=left] stcBaud.u32Baud = 9600;[/align][align=left] u16Scnt = LPUart_CalScnt(LPUART1, &stcBaud);[/align][align=left] LPUart_SetBaud(LPUART1, u16Scnt);[/align][align=left] [/align][align=left] LPUart_EnableIrq(LPUART1, LPUartRxIrq);[/align][align=left] LPUart_ClrStatus(LPUART1, LPUartRC);[/align][align=left] LPUart_EnableFunc(LPUART1, LPUartRx);[/align][align=left]}[/align][align=left]//===================================[/align][align=left][font=Calibri]// LPUART [/font][font=宋体]中断服务函数[/font][/align][align=left]//===================================[/align][align=left]void LPUartRxIntCallback(void)[/align][align=left]{[/align][align=left] Uartbuff[UartRX_dp++] = LPUart_ReceiveData(LPUART1);;[/align][align=left] [/align][align=left] if(UartRX_dp >= 8)[/align][align=left] {[/align][align=left] if( (Uartbuff[0] == PollAdd) || (Uartbuff[0] == 0) )[/align][align=left] {[/align][align=left] if((Uartbuff[1] == 3) || (Uartbuff[1] == 6) || (Uartbuff[1] == 8))[/align][align=left] {[/align][align=left] ISRcrc16 = ISRcal_crc16(Uartbuff, 6);[/align][align=left] [/align][align=left] if( (Uartbuff[6] == ((uint8_t)ISRcrc16)) && ( Uartbuff[7] == ((uint8_t)(ISRcrc16 >> 8))) )[/align][align=left] {[/align][align=left] [font=Calibri]//[/font][font=宋体]准备发送[/font][/align][align=left] UartHartrecok = 0x55;[/align][align=left] [/align][align=left] if((Uartbuff[1] == 3) || (Uartbuff[1] == 6))[/align][align=left] **.ReportSum** = 0;[/align][align=left] [/align][align=left] // Rxreal**=0;[/align][align=left] UartRX_dp = 0;[/align][align=left] }[/align][align=left] [/align][align=left] code16 = 0;[/align][align=left] }[/align][align=left] else if(Uartbuff[1] == 0x10)[/align][align=left] {[/align][align=left] if(UartRX_dp >= (Uartbuff[6] + 9))[/align][align=left] {[/align][align=left] ISRcrc16 = ISRcal_crc16(Uartbuff, Uartbuff[6] + 7);[/align][align=left] [/align][align=left] if( (Uartbuff[Uartbuff[6] + 7] == ((uint8_t)ISRcrc16)) && ( Uartbuff[Uartbuff[6] + 8] == ((uint8_t)(ISRcrc16 >> 8))) )[/align][align=left] {[/align][align=left] [font=Calibri]//[/font][font=宋体]准备发送[/font][/align][align=left] UartHartrecok = 0x55;[/align][align=left] [/align][align=left] **.ReportSum** = 0;[/align][align=left] // Rxreal**=0;[/align][align=left] UartRX_dp = 0;[/align][align=left] }[/align][align=left] code16 = 0; //20220419[/align][align=left] }[/align][align=left] [font=Calibri]else code16 = 0x55;[/font] [font=Calibri]//[/font][font=宋体]未收完[/font][/align][align=left] }[/align][align=left] else code16 = 0;[/align][align=left] }[/align][align=left] [/align][align=left] [font=Calibri]if( (UartHartrecok != 0x55) && (code16 != 0x55) )[/font] [font=Calibri]//[/font][font=宋体]数据不对,移除最旧的一个字节[/font][/align][align=left] {[/align][align=left] uint8_t i;[/align][align=left] [/align][align=left] for(i = 0; i < UartRX_dp - 1; i++) Uartbuff[i] = Uartbuff[i + 1];[/align][align=left] [/align][align=left] UartRX_dp -= 1;[/align][align=left] }[/align][align=left] [/align][align=left] if(UartHartrecok == 0x55)[/align][align=left] {[/align][align=left] MODBUSManagement();[/align][align=left] } [/align][align=left] [/align][align=left] }[/align][align=left] [/align][align=left]}[/align][align=left]//===================================[/align][align=left][font=Calibri]// LPUART[/font][font=宋体]发送命令处理函数[/font][/align][align=left]//===================================[/align][align=left]void MODBUSManagement(void)[/align][align=left]{[/align][align=left] if(UartHartrecok == 0x55)[/align][align=left] {[/align][align=left] uint8_t UartTX_cn;[/align][align=left] UartHartrecok = 0;[/align][align=left] UartTX_cn = Uart_rx_deal(Uartbuff);[/align][align=left] [/align][align=left] [font=Calibri]/*[/font][font=宋体]数据发送[/font][font=Calibri]*/[/font][/align][align=left] for(uint8_t i = 0; i < UartTX_cn; i++)[/align][align=left] {[/align][align=left] LPUart_SendData(LPUART1, Uartbuff[i]);[/align][align=left] }[/align][align=left] }[/align][align=left]}[/align][align=left]//===================================[/align][align=left][font=Calibri]// [/font][font=宋体]主函数[/font][/align][align=left]//===================================[/align][align=left]int32_t main(void)[/align][align=left]{ [/align][align=left] lpuart_init();[/align][align=left] [font=宋体]初始化[/font][/align][align=left]while(1)[/align][align=left] {[/align][align=left] Wdt_Feed();[/align][align=left] [/align][align=left] MODBUSManagement();[/align][align=left] [/align][align=left] if((!**.M50** || Resetdly > 0) && Ovmagdly == 0)[/align][align=left] {[/align][align=left] [font=Calibri]//LCDLIB_PrintRSSI(4);//[/font][font=宋体]关闭信号强度显示[/font][/align][align=left] stcConfig.enSLEEPDEEP = SlpDpEnable;[/align][align=left] Lpm_Config(&stcConfig);[/align][align=left] Lpm_GotoLpmMode();[/align][align=left] }[/align][align=left] else[/align][align=left] {[/align][align=left] stcConfig.enSLEEPDEEP = SlpDpDisable;[/align][align=left] Lpm_Config(&stcConfig);[/align][align=left] Lpm_GotoLpmMode();[/align][align=left] }[/align][align=left] }[/align][align=left]}[/align]
700浏览量 2回复量 关注量 -
请问HC32LF136的开发板LPuart0如何复用? sos
我在官方提供的样例库中将LPuart1修改成了PB10和PB11的脚复用成LPuart0,但是发现一直未复用成功,请问一下哪里配置错了吗?///
1346浏览量 0回复量 关注量 -
HC32L110的LPUART低功耗串口无校验时接收不稳定 sos
HC32L110,无外部高速、低速晶振。RCH用的内部4M晶振,RCL使用内部38.4k,LPUART使用工作模式1(无校验时)或工作模式3(有校验)。 MCU上电初始化后进入低功耗状态,在低功耗状态下LPUART接收。 目前的问题现象: 使用SSCOM发送一帧数据,LPUART 2400/9600带奇偶校验接收无问题,每个字节都会产生中断。 如果改成无校验模式,SSCOM发送一帧数据,只有最后一个字节会产生中断,前面的字节都接收不到(有的时候也会不丢数据)。如果SSCOM发送时停止位改成2位,或者每次只发送1个字节,接收也没问题。 似乎是HC32L110无校验的情况下还是当成了有校验?
2768浏览量 0回复量 关注量 -
HC32L130DMA+LPUART发送,用block模式,只能传送一个block
[color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]请教各位一个问题:[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]使用LPUART0+DMA,发送4个字节,结果查看寄存器,SRCADR只前进了一位,就卡住了,貌似LPUART没给DMA触发信号[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]代码如下:[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]uint8_t u8TxData[8] = {'A','T','\r','\n'}; //addr: 0x20000000[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]int32_t main(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]{ [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] uint32_t i;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] //uart端口配置[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] App_UartPortInit();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] //UART模块配置[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] App_UartCfg();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] //DMA参数配置[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] App_DmaCfg();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] while(1)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] if(5 == Dma_GetStat(DmaCh1))[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] //清除通道0状态值 [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Dma_DisableChannel(DmaCh1);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] break;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] while(1){[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]//UART模块配置[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]void App_UartCfg(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]{[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] stc_lpuart_cfg_t stcCfg;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] DDL_ZERO_STRUCT(stcCfg);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] ///<外设模块时钟使能[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Sysctrl_SetPeripheralGate(SysctrlPeripheralLpUart0,TRUE); [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] ///
CH1)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Dma_Enable(); //DMA模块使能[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Dma_InitChannel(DmaCh1, &stcDmaCfg); //DMA通道1初始化[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Dma_EnableChannel(DmaCh1); //使能通道1[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]//uart端口配置[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]void App_UartPortInit(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]{[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] stc_gpio_cfg_t stcGpioCfg;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] DDL_ZERO_STRUCT(stcGpioCfg);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] /// 2626浏览量 1回复量 关注量 -
HC32L136K8TA的LpUart通信不上
[color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]把官方历程lpuart_int里面的LpUart1修改为我实际使用的LpUart0(PC04-TXD PC05-RXD),一直通信不上,发送接收都没反应,硬件排查没什么问题。用另外1个非低功耗的串口Uart0是正常的。[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/******************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]* Include files[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]#include "ddl.h"[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]#include "lpuart.h"[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]#include "lpm.h"[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]#include "gpio.h"[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]#include "sysctrl.h"[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/******************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]* Local pre-processor symbols/macros ('#define') [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/******************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]* Global variable definitions (declared in header file with 'extern')[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/******************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]* Local type definitions ('typedef') [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/******************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]* Local function prototypes ('static')[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/******************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]* Local variable definitions ('static') *[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]uint8_t u8TxData[2] = {0x00,0x55};[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]uint8_t u8RxData = 00;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/*****************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]* Function implementation - global ('extern') and local ('static')[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]void App_LpUartPortCfg(void);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]void App_LpUartCfg(void);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]/**[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]** \brief Main function of project[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]**[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]** \return uint32_t return value, if needed[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]**[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]** This sample[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]**[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]******************************************************************************/[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]int32_t main(void)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]{ [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] ///< 端口配置[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] App_LpUartPortCfg();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] ///< LPUART配置[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] App_LpUartCfg();[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] //发送数据[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] LPUart_SendDataIt(M0P_LPUART0, 0x55); [/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] while(1)[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] {[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] ;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px] }[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=16px]///
3109浏览量 2回复量 关注量 -
HC32L136K8TA的LpUart通信不上 sos
把官方历程lpuart_int里面的LpUart1修改为我实际使用的LpUart0(PC04-TXD PC05-RXD),一直通信不上,发送接收都没反应,硬件排查没什么问题。用另外1个非低功耗的串口Uart0是正常的。 /****************************************************************************** * Include files ******************************************************************************/ #include "ddl.h" #include "lpuart.h" #include "lpm.h" #include "gpio.h" #include "sysctrl.h" /****************************************************************************** * Local pre-processor symbols/macros ('#define') ******************************************************************************/ /****************************************************************************** * Global variable definitions (declared in header file with 'extern') ******************************************************************************/ /****************************************************************************** * Local type definitions ('typedef') ******************************************************************************/ /****************************************************************************** * Local function prototypes ('static') ******************************************************************************/ /****************************************************************************** * Local variable definitions ('static') * ******************************************************************************/ uint8_t u8TxData[2] = {0x00,0x55}; uint8_t u8RxData = 00; /***************************************************************************** * Function implementation - global ('extern') and local ('static') ******************************************************************************/ void App_LpUartPortCfg(void); void App_LpUartCfg(void); /** ****************************************************************************** ** \brief Main function of project ** ** \return uint32_t return value, if needed ** ** This sample ** ******************************************************************************/ int32_t main(void) { ///< 端口配置 App_LpUartPortCfg(); ///< LPUART配置 App_LpUartCfg(); //发送数据 LPUart_SendDataIt(M0P_LPUART0, 0x55); while(1) { ; } } ///
2200浏览量 0回复量 关注量 -
华大HC32L136 LPUART0异常
采用hc32l13x_ddl_Rev1.9.1 Lite 里面example目录下的lpuart示例,将串口IO适配成自己硬件板子,板子TX\RX接线到PC端;1. 发送时钟引用PCLK,与PC端通信正常; 2. 发送时钟用内部RCL(38.4K),数据发送不出来,并且PC端给硬件发送数据,也无中断触发; stcCfg.enStopBit = LPUart1bit; ///<1停止位 stcCfg.enMmdorCk = LPUartDataOrAddr; ///<偶校验 stcCfg.stcBaud.enSclkSel = LPUartMskRcl; ///<传输时钟源 stcCfg.stcBaud.u32Sclk = 38400; ///
2101浏览量 8回复量 关注量