关于I2C_DMA:ATM和ST寄存器的疑惑
如图3,9.6实验箱-DMA_I2C与存储器自动收发示例程序中,
需要设置DMA_I2CR_AMT 和 DMA_I2C_ST两个寄存器,
已设置了I2C_DMA总字节数,为啥又要设置I2C_DMA传输字节数?
DMA_I2CR_AMT和DMA_I2C_ST其实没有区别,都是设置DMA的总数-1,他们分别被设计在不同的硬件模块里面,都必须设置。
DMA_I2CR_AMT和DMA_I2CT_AMT寄存器在DMA电路内部,用于控制需要读或者写多少个I2C数据到XRAM,与I2C协议无关。
DMA_I2C_ST在I2C模块内部,用于自动控制收或发多少个I2C数据,与XRAM无关,而与I2C协议有关,比如控制读取数据达到最后一个时,自动回NAK,这个动作是由DMA_I2C_ST来控制的。
使用时两个都设置一样的值就可以了。 乘风飞扬 发表于 2023-5-10 16:58
DMA_I2CR_AMT和DMA_I2C_ST其实没有区别,都是设置DMA的总数-1,他们分别被设计在不同的硬件模块里面,都必 ...
了解了,感谢指导 顺路学习了; 看了一下8051U的芯片pdf,其中的确没有上述描述。
页:
[1]