- 打卡等级:偶尔看看I
- 打卡总天数:16
- 最近打卡:2026-04-20 18:50:09
已绑定手机
注册会员
- 积分
- 57
|
void DMA_usart(void)
{
DMA_UR2T_CFG = 0x8A; //bit7 1:Enable Interrupt
DMA_UR2T_STA = 0x00;
DMA_UR2T_AMT = 0x63; //设置传输总字节数(低8位):n+1
DMA_UR2T_AMTH = 0x00; //设置传输总字节数(高8位):n+1
DMA_UR2T_TXAH = (u8)((u16)&DmaT2Buffer >> 8);
DMA_UR2T_TXAL = (u8)((u16)&DmaT2Buffer);
DMA_UR2T_CR = 0xc0; //bit7 1:使能 UART2_DMA, bit6 1:开始 UART2_DMA 自动发送
DMA_UR2R_CFG = 0x8A; //bit7 1:Enable Interrupt
DMA_UR2R_STA = 0x00;
DMA_UR2R_AMT = 0x63; //设置传输总字节数(低8位):n+1
DMA_UR2R_AMTH = 0x00; //设置传输总字节数(高8位):n+1
DMA_UR2R_RXAH = (u8)((u16)&DmaT2Buffer >> 8);
DMA_UR2R_RXAL = (u8)((u16)&DmaT2Buffer);
DMA_UR2R_CR = 0xa1; //bit7 1:使能 UART2_DMA, bit5 1:开始 UART2_DMA 自动接收, bit0 1:清除 FIFO
}
按照官方原码,初始化DMA串口2,上电后串口一直发,在DMA串口中断里加入关闭发送DMA_UR2T_CR = 0x00;也不行,只有在初始化的时候先关闭发送,才能正常,能发送数据,但在上电发送第一次时,前面总会出现一个或几个乱码,在第二次发送是就没有,还有就是开起DMA_UR2T_CR = 0xc0;自动发送后,是发完一次后,自动关闭,要再次写入才能发送,还是一直发送,只有DMA_UR2T_CR = 0x00;关闭后才不发送呢,我的DMA ADC就是读一次要再次触发才工作。两者不一样吗
|
|