[单片机芯片] CH32V203的GPIOC控制位不对齐的目的是什么?

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

  7. #endif

  8.     GPIOx->BCR = GPIO_Pin;
  9. }


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并不需要特殊处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

904

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部