- 打卡等级:偶尔看看III
- 打卡总天数:47
- 最近打卡:2025-04-30 20:21:43
高级会员
- 积分
- 697
|
串口DMA如何让当前已接受的数量清零。
void BMM_Config(void)
{
P_SW2 = 0x80;
//发送配置
BMM_UR1T_CFG = 0x80; //bit7 1:Enable Interrupt BMM_UR1T_STA = 0x00; BMM_UR1T_AMT = 0xff; //设置传输总字节数:n+1 BMM_UR1T_TXA = BmmBuffer; BMM_UR1T_CR = 0xc0; //bit7 1:使能 UART1_BMM, bit6 1:开始 UART1_BMM 自动发送
//接收配置
BMM_UR1R_CFG = 0x80; //bit7 1:Enable Interrupt BMM_UR1R_STA = 0x00;
BMM_UR1R_AMT = 0x64; //设置传输总字节数:n+1 这个地方配置100
BMM_UR1R_RXA = BmmBuffer; BMM_UR1R_CR = 0xa1; //bit7 1:使能 UART1_BMM, bit5 1:开始 UART1_BMM 自动接收, bit0 1:清除 FIFO
}
void main()
{
if((BmmBuffer[BMM_UR1R_DONE ] == 0x10 ) &&(BmmBuffer[BMM_UR1R_DONE-1 ] == 0x09))
{
//这里我想在这里清理 BMM_UR1R_DONE 为 0
//BMM_UR1R_DONE = 0
//我发现 现在只有产生接收中断 BMM_UR1R_DONE 才会变为0
//我现在数据长度不定 有的一帧 8 ~ 20个字节
// 这个想法能够实现吗?
}
} |
|