找回密码
 立即注册
查看: 106|回复: 1

AI8051U DMA使用问题?

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2026-03-09 22:26:23
已绑定手机

9

主题

12

回帖

103

积分

注册会员

积分
103
发表于 2026-2-3 08:39:24 | 显示全部楼层 |阅读模式
谁能帮我看看,这个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                                                                                        ;

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2026-03-09 22:26:23
已绑定手机

9

主题

12

回帖

103

积分

注册会员

积分
103
发表于 2026-2-6 15:23:17 | 显示全部楼层
总结一下,ES不能关闭,必须在023H中断中,清0  RI标志. DMA好难用!
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-4-5 20:50 , Processed in 0.101174 second(s), 47 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表