请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5994 我使用的是 gcc 版本9.3.1 (Mitto Systems Limited - MSP430-gcc 9.3.1.11)。 我有一个20位地址、例如0x1ABCD、我想将其写入 DMA1DA。 例如、我要执行如下操作:
long unsigned int addr = 0x1ABCDUL; DMA1DA = addr;
但是、很显然、地址不会将其放入 DMA 寄存器中。 对于16位地址、这起作用:
DMA1DA = 0xABCD; if (DMA1DA == 0xADCD) printf("OK");
它打印"确定"。 但具有20位地址
DMA1DA = 0x1ABCDUL; if (DMA1DA == 0x1ADCDUL) printf("OK");
不奏效。
我尝试将地址转换为类型,但没有任何作用。
如何获得一个存储在变量(例如无符号长整型)中的20位地址到像带有 GCC 的 DMA1DA 这样的寄存器中?