已知GD32的固件函数库有如下定义:
#define RCU_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx)<<6) | (uint32_t)(bitpos))
typedef enum
{
...
IDX_APB2RST = 0x0CU,
...
}
typedef enum
{
...
RCU_ADCRST = RCU_REGIDX_BIT(IDX_APB2RST, 9U), /*!< ADC reset */
...
}
IDX_APB2RST为什么要左移6位?难道M23的ARM不是32 bit宽度的吗?
如果数据宽度按32 bit组织,那么应该左移3位;
如果数据宽度按16 bit组织,那么应该左移6位了??
|