问答

汇集网友智慧,解决技术难题

breakP

TA的家园币:58  

  • 华大HC32L130J8TA,UART1+DMA功能正常,换成UART0就用不了了,什么原因?

    本帖最后由breakP于2023-11-210:27编辑直接用的例程,这是UART1+DMA可以正常使用,但是换成UART0就不行了,接线,参数都检查过了int32_tmain(void){//uart端口配置App_UartPortInit();//UART模块配置App_UartCfg();//DMA参数配置App_DmaCfg();while(1){if(5==Dma_GetStat(DmaCh0))//完成一次通道传输(UART1_RX->RAM缓存2字节){Dma_DisableChannel(DmaCh0);//禁用通道0delay10us(100);Dma_EnableChannel(DmaCh1);//使能通道1Dma_ClrStat(DmaCh0);//清除通道0状态值}if(5==Dma_GetStat(DmaCh1))//完成一次通道传输(RAM缓存->UART1_TX2字节){Dma_DisableChannel(DmaCh1);//禁用通道1Dma_EnableChannel(DmaCh0);//使能通道0Dma_ClrStat(DmaCh1);//清除通道0状态值}}}//UART模块配置voidApp_UartCfg(void){stc_uart_cfg_tstcCfg;stc_uart_baud_tstcBaud;DDL_ZERO_STRUCT(stcCfg);//初始化变量DDL_ZERO_STRUCT(stcBaud);//初始化变量Sysctrl_SetPeripheralGate(SysctrlPeripheralUart1,TRUE);//使能UART1外设时钟门控开关stcCfg.enRunMode=UartMskMode1;//模式3stcCfg.enStopBit=UartMsk1bit;//1位停止位stcCfg.stcBaud.u32Baud=9600;//波特率9600stcCfg.stcBaud.enClkDiv=UartMsk8Or16Div;//通道采样分频配置stcCfg.stcBaud.u32Pclk=Sysctrl_GetPClkFreq();//获得外设时钟(PCLK)频率值Uart_Init(M0P_UART1,&stcCfg);//串口初始化Uart_ClrStatus(M0P_UART1,UartRC);//清接收请求Uart_ClrStatus(M0P_UART1,UartTC);//清发送请求Uart_EnableFunc(M0P_UART1,UartDmaTxFunc);//使能DMA发送,DMA相关通道使能后,如果TxBuff为空,会立马启动传输Uart_EnableFunc(M0P_UART1,UartDmaRxFunc);//使能DMA接收}//DMA参数配置voidApp_DmaCfg(void){stc_dma_cfg_tstcDmaCfg;DDL_ZERO_STRUCT(stcDmaCfg);//初始化变量Sysctrl_SetPeripheralGate(SysctrlPeripheralDma,TRUE);//使能DMAC外设时钟门控开关//rxdma配置stcDmaCfg.u32SrcAddres

  • HC32L130 UART通讯修改波特率乱码

    例程设置的9600正常,改成115200为什么会乱码,还有什么没改??求教

    2023-10-27 11