[单片机芯片]

CH32V203的GPIOC控制位不对齐的目的是什么?

[复制链接]
272|2
手机看帖
扫描二维码
随时随地手机跟帖
imdx|  楼主 | 2022-9-21 11:57 | 显示全部楼层 |阅读模式
IO, gp, pi
比如PC13这个管脚的控制位,正常都会放到bit13这个位,但是在CH32V203上是放在bit0的,固件库中就要专门处理这种情况,我理解除了增加不兼容性并没有什么好处。是单纯硬件设计的时候一个失误?还是有其它方面的考虑?
void GPIO_ResetBits(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
{
#if defined (CH32V20x_D6)
    if(GPIOx == GPIOC){
        GPIO_Pin = GPIO_Pin >> 13;
    }

#endif

    GPIOx->BCR = GPIO_Pin;
}


使用特权

评论回复
WCHTech2| | 2022-9-22 19:42 | 显示全部楼层
您好,早期芯片为了考虑大家使用习惯以及兼容CH32x103系列,在库中做了这样的处理,目前芯片已不需要这样处理。

使用特权

评论回复
imdx|  楼主 | 2022-9-22 21:08 | 显示全部楼层
WCHTech2 发表于 2022-9-22 19:42
您好,早期芯片为了考虑大家使用习惯以及兼容CH32x103系列,在库中做了这样的处理,目前芯片已不需要这样处 ...

我看了下CH32V103的库,GPIOC并不需要特殊处理。感觉还是CH32V203这个系列的GPIOC硬件搞错了。而且CH32V203RBT6和CH32V208已经修正了这个问题,GPIOC并不需要特殊处理。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则