STM32F4 UART 半字寻址

试图为 STM32F4 UART 推出我自己的代码。该芯片的一个特点是,如果您像 GNAT 编译器那样使用字节寻址来设置单个位,则半字的另一个字节中的相应位将被设置。数据表说使用半字寻址。有没有办法告诉编译器这样做?我试过 CR1_register'Size use 16;

但这没有效果。写入整个 16 位字有效,但您无法设置命名位。

回答

在 AdaCore Ada Drivers Library中使用的 GNAT 方法是使用 GNAT-only 方面Volatile_Full_Access,GNAT 参考手册中说到

他们的代码是

   --  Control register 1
type CR1_Register is record
--  Send break
SBK            : Boolean := False;
...
end record
with Volatile_Full_Access, Size => 32,
Bit_Order => System.Low_Order_First;
for CR1_Register use record
SBK            at 0 range 0 .. 0;
...
end record;

以上是STM32F4 UART 半字寻址的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>