guo_stc 发表于 2026-1-22 12:35:57

DMA使用中的XRAM地址是不是不稳定?

AI8051U34K64 QFN48, 在XRAM TO TFT 16位I8080,565格式传输中,总是数据不对,直接LCMIF配置输出才行.


;WR8放入数据数量, WR30指向数据地址,可寻址64K空间
ILI_DMADATA_WR:                                                        ;DMA方式写LCM显示数据
        MOV                DPX,        #WORD0 DMA_LCM_AMTH        ;
        MOVH        DPX,        #WORD2 DMA_LCM_AMTH        ;
        MOV                @DPX,        R8                                        ;
        MOV                DPX,        #WORD0 DMA_LCM_AMT        ;
        MOVH        DPX,        #WORD2 DMA_LCM_AMT        ;
        MOV                @DPX,        R9                                        ;数据数量
        MOV                WR10,        WR30                                ;源地址       
        MOV                DPX,        #WORD0 DMA_LCM_TXAH        ;
        MOVH        DPX,        #WORD2 DMA_LCM_TXAH        ;       
        MOV                @DPX,        R10                                        ;       
        MOV                DPX,        #WORD0 DMA_LCM_TXAL        ;
        MOVH        DPX,        #WORD2 DMA_LCM_TXAL        ;       
        MOV                @DPX,        R11                                        ;
       
        MOV                R11,        #0A1H                                ;清空FIFO,数据写开始
        MOV                DPX,        #WORD0 DMA_LCM_CR        ;
        MOVH        DPX,        #WORD2 DMA_LCM_CR        ;
        MOV                @DPX,        R11                                        ;
RET                                                                                ;


Ayb_ice 发表于 2026-1-22 13:33:32

不需要直接操作DPX,直接操作DPTR,然后访问@DR56

guo_stc 发表于 2026-1-22 15:34:53

DPX=DR56,只是写法不同.我这个找到问题了,
是发送字节数不对,16位发送的话,
DMA_LCM_AMT 发送次数得减半,
因为一次发送了2个字节.
它这个描述成字节数有点坑人!
{:4_165:}
页: [1]
查看完整版本: DMA使用中的XRAM地址是不是不稳定?