-
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回复量 关注量 -
HC32L136无法正常启动
在main函数里,增加调用一个空函数,烧录程序过后,上电,第一次可以正常启动,关机后无法再启动,注释掉空函数,就可以正常重复启动了,请教一下原因和解决方案
2396浏览量 1回复量 关注量 -
HC32L136K8TA,低功耗
[color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]目前使用的是gpio的低功耗例程,在HC32L136K8TA最小开发板上测试功耗始终降不下去,查看过寄存器bgr和adc这些外设都已关闭,我达不到10ua以内,最小只可以达到369ua,求指导一下还该咋样配置代码:[/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] delay1ms(5000);[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] ///< 配置Demo板上所有不使用的IO为高阻输入,避免端口漏电[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] App_LowPowerModeGpioSet();[/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] Lpm_GotoDeepSleep(TRUE);[/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] }[/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]static void App_LowPowerModeGpioSet(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] ///< 打开GPIO外设时钟门控[/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] //swd as gpio[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] Sysctrl_SetFunc(SysctrlSWDUseIOEn, 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] M0P_GPIO->PAADS = 0;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PBADS = 0;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PCADS = 0;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PDADS = 0;[/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] M0P_GPIO->PADIR = 0XFFFF;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PBDIR = 0XFFFF;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PCDIR = 0XFFFF;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PDDIR = 0XFFFF;[/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] M0P_GPIO->PAPD = 0xFFFF;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PBPD = 0xFFFF;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PCPD = 0xFFFF;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px] M0P_GPIO->PDPD = 0xFFFF;[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(242, 249, 253)][font=Tahoma, "][size=16px]}[/size][/font][/backcolor][/color]
2060浏览量 1回复量 关注量 -
HC32l136低功耗相关配置 sos
在应用中调用库函数:Lpm_GotoDeepSleep()函数,然后其他程序中配置有lptim做1S定时器使用,该定时器会唤醒mcu嘛,同时他在mcu休眠时是否还会计数? /** ***************************************************************************** ** \brief 进入深度睡眠模式 ** ** \input bOnExit - TRUE:当退出异常处理后,自动再次进入休眠; ** FALSE:唤醒后不再自动进入休眠 ** ** \retval NULL *****************************************************************************/ void Lpm_GotoDeepSleep(boolean_t bOnExit) { SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk; SCB->SCR |= 1u<
1262浏览量 0回复量 关注量 -
华大HC32L136单片机 中的AES模块是使用哪种模式加密的 sos
为什么华大的资料这么有限,惜墨如金,看看手册也很简单,但是从网上上接受AES有五种模式:[color=rgb(68, 68, 68)][backcolor=rgb(255, 255, 255)][font="][size=12px]1.[/size][/font][/backcolor][/color][color=rgb(68, 68, 68)][backcolor=rgb(255, 255, 255)][font="][size=12px]电码本模式(Electronic Codebook Book (ECB));2.密码分组链接模式(Cipher Block Chaining (CBC));3.计算器模式(Counter (CTR));4.密码反馈模式(Cipher FeedBack (CFB));5.输出反馈模式(Output FeedBack (OFB)),也不清楚华大的单片机是支持的哪种?还是还需要软件完成[/size][/font][/backcolor][/color]
1806浏览量 0回复量 关注量 -
华大HC32L136系列单片机 正交编码器有谁用过
最近要使用定时器的正交编码器功能,手册也看过几遍,着手要试一下,却发现不知道该如何操作,请问有谁使用过华大的HC32L136系列的正交编码器功能呢,希望指点一下。另外手册中16.2.7中介绍正交编码器计数功能的时候说MSCR.SMS是用来选择编码器模式的,但是在后面的寄存器介绍中找到了MSCR这个寄存器,但是没有找到相关的位。
19660浏览量 59回复量 关注量 -
求助!!HC32L136 无法进入外部中断
求助!!!各位大哥们!!!同一份工程文件在Keil IDE下,编译后,能够正常运行,但是通过 ARM DS-5编译后,无法正常进入外部中断 1. 通过查看配置的中断相关寄存器,寄存器是配置成功的
4884浏览量 4回复量 关注量 -
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回复量 关注量 -
华大HC32L136J8用FLASH当E2P功能 sos
测试了很多遍只能写一次,无法擦除已写的内容,以官方的实例 ps,这不是第一次写 所以第一个50是错误的 应该0XFF00以后都是5A, 然后我将u8TestData改成 0X11得到下并没有再次写入,有人能帮忙吗
1367浏览量 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回复量 关注量 -
HC32L136开发板移植rt-thread nano的问题
[i=s] 本帖最后由 Joen23 于 2020-11-23 15:58 编辑 [/i] 各位大佬,有使用过HC32L136开发板移植rt-thread nano的吗?移植rt-thread nano在rt-thread官网上有详细步骤,需要针对芯片自己编写几个函数,其中我看了rt_hw_console_getchar函数,例子里的rt_hw_console_getchar函数体是这样的[color=rgb(114, 142, 0)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]char rt_hw_console_getchar(void)[/font][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]{ [/font][/backcolor][/color] [color=rgb(0, 151, 157)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]int[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] ch = [/font][/backcolor][/color][color=rgb(138, 123, 82)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]-1[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]; [/font][/backcolor][/color] [color=rgb(0, 151, 157)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] if[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] (__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_RXNE) != RESET)[/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] { [/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] ch = UartHandle.Instance->DR & [/font][/backcolor][/color][color=rgb(138, 123, 82)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]0xff[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]; [/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] } [/font][/backcolor][/color] [color=rgb(0, 151, 157)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] else[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] [/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] { [/font][/backcolor][/color] [color=rgb(0, 151, 157)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] if[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "](__HAL_UART_GET_FLAG(&UartHandle, UART_FLAG_ORE) != RESET) [/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] { [/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] __HAL_UART_CLEAR_OREFLAG(&UartHandle);[/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] } [/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] rt_thread_mdelay([/font][/backcolor][/color][color=rgb(138, 123, 82)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]10[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]);[/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] } [/font][/backcolor][/color] [color=rgb(0, 151, 157)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]return[/font][/color][color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "] ch;[/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]}[/font][/backcolor][/color] [color=#434f54][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]需要使用到串口状态寄存器中[/font][/backcolor][/color][color=rgb(67, 79, 84)][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]UART_FLAG_RXNE和[/font][/backcolor][/color][color=rgb(67, 79, 84)][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]UART_FLAG_ORE这两个标志位,[/font][/backcolor][/color][color=rgb(67, 79, 84)][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]但是华大的hc32l136芯片比较低级[/font][/backcolor][/color][color=rgb(67, 79, 84)][font=SFMono-Regular, Menlo, Monaco, Consolas, "],它的串口状态寄存器里[/font][/color][color=rgb(67, 79, 84)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]没有这两个标志位。[/font][/color][color=rgb(67, 79, 84)][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "](说低级不是贬低华大[/font][/backcolor][/color][color=rgb(67, 79, 84)][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]芯片,华大比较高级的芯片如hc32f460的串口状态寄存器有这两个标志位)[/font][/backcolor][/color][color=rgb(67, 79, 84)][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "],那移植rt-thread nano[/font][/backcolor][/color][color=rgb(67, 79, 84)][backcolor=rgb(255, 255, 255)][font=SFMono-Regular, Menlo, Monaco, Consolas, "]时这个[/font][/backcolor][/color]rt_hw_console_getchar函数应该怎么编写?
1755浏览量 14回复量 关注量