- 打卡等级:偶尔看看I
- 打卡总天数:11
- 最近打卡:2026-03-09 22:26:23
已绑定手机
注册会员
- 积分
- 103
|
谁能帮我看看,这个DMA设置哪里不对? AI8051U34K64 QFN ,主频45.1184MHZ, ES关闭, DMA的完成中断不产生,在电脑上发送的再多的数据都没回应.
DMA_UR1R_SET: ;
MOV DPX, #WORD0 DMA_UR1R_CFG ;B7:UR1RIE,B3B2:UR1RIP中断优先级,
MOVH DPX, #WORD2 DMA_UR1R_CFG ;B1B0:UR1RPTY总线优先级
MOV R11, #10000101B ;
MOV @DPX, R11 ;
MOV DPX, #WORD0 DMA_UR1R_STA ;B1:RXLOSS数据丢弃标志,
MOVH DPX, #WORD2 DMA_UR1R_STA ;B0:UR1RIF中断请求标志
MOV R11, #00000000B ;
MOV @DPX, R11 ;
MOV DPX, #WORD0 DMA_UR1R_AMTH ;传输总字节数高字节
MOVH DPX, #WORD2 DMA_UR1R_AMTH ;
MOV R11, #000H ;32BYTE
MOV @DPX, R11 ;
MOV DPX, #WORD0 DMA_UR1R_AMT ;传输总字节数低字节
MOVH DPX, #WORD2 DMA_UR1R_AMT ;
MOV R11, #01FH ;
MOV @DPX, R11 ;
; JB UART1_A_B_ST, DMA_UR1R_SET1 ;
MOV WR10, #WORD0 SBUF1_ADDR ;
SJMP DMA_UR1R_SET2 ;
DMA_UR1R_SET1: ;
MOV WR10, #WORD0 SBUF2_ADDR ;
DMA_UR1R_SET2: ;
MOV DPX, #WORD0 DMA_UR1R_RXAH ;接收地址高字节
MOVH DPX, #WORD2 DMA_UR1R_RXAH ;
MOV @DPX, R10 ;
MOV DPX, #WORD0 DMA_UR1R_RXAL ;接收地址低字节
MOVH DPX, #WORD2 DMA_UR1R_RXAL ;
MOV @DPX, R11 ;
MOV DPX, #WORD0 DMA_UR1R_CR ;B7:UR1REN,B5:TRIG触发开始,
MOVH DPX, #WORD2 DMA_UR1R_CR ;B0:CLRFIFO,写1清空FIFO
MOV R11, #10100001B ;
MOV @DPX, R11 ;
RET ;
DMA_UR1R_ISR: ;DMA串口1接收中断
PUSH DPX ;
PUSH WR10 ;
PUSH PSW ;
PUSH PSW1 ;
SETB UART1_RX_OVER ;
MOV DPX, #WORD0 DMA_UR1R_STA ;B1:RXLOSS数据丢弃标志,
MOVH DPX, #WORD2 DMA_UR1R_STA ;B0:UR1RIF中断请求标志
MOV R11, #0 ;
MOV @DPX, R11 ;
MOV DPTR, #WORD0 DMA_QSPI_CR ;B7:QSPIEN,B6:写1写开始,B5:写1读开始,
; MOVH DPX, #WORD2 DMA_QSPI_CR ;B1:写1清空写FIFO,B0:写1清空读FIFO
MOV @DPX, R11 ;
MOV DPTR, #WORD0 DMA_UR1R_DONEH ;
MOV R10, @DPX ;
MOV DPTR, #WORD0 DMA_UR1R_DONE ;
MOV R11, @DPX ;
; JB UART1_A_B_ST, DMA_UR1R_ISR1 ;
MOV UART1_1COUNT, WR10 ;
SETB BUFF1_BUSY_ST ;
SJMP DMA_UR1R_ISR2 ;
DMA_UR1R_ISR1: ;
MOV UART1_2COUNT, WR10 ;
SETB BUFF2_BUSY_ST ;
DMA_UR1R_ISR2: ;
POP PSW1 ;
POP PSW ;
POP WR10 ;
POP DPX ;
RETI ;
|
|