头文件和友商S*M32的兼容性: xxxx_Msk和Pos

友商S*M32的头文件中,对于某个位(如GPIO的CFGLR寄存器的MODE2位),

通常会提供该位的Mask定义 :GPIO_CFGLR_MODE2_Msk和位置定义:GPIO_CFGLR_MODE2_Pos。

位置定义可以将所需的二进制位移动到想要的位置:

GPIOA->CFGLR|=0b11???? <<????GPIO_CFGLR_MODE2_Pos


WCH的头文件里,似乎只提供GPIO_CFGLR_MODE2,等价于友商的Mask,未提供位置定义,导致移植代码出现一些麻烦。

为什么我发帖中空格会自动变成问号呢?


的确,要使用到底层寄存器定义时,会有一些不兼容的情况。

我移植CAN的也遇到了。

空格 我也 试试看?

x = x << 1;


只有登录才能回复,可以选择微信账号登录