关于CH32F208W 芯片的GPIOC0-12输出口的问题。

假如

GPIO_SetBits(GPIOC,GPIO_Pin_12);

GPIO_SetBits(GPIOC,GPIO_Pin_4);

GPIO_SetBits(GPIOC,GPIO_Pin_5);

在函数内部都GPIO_Pin >> 13后GPIO_Pin 都为0,


那么GPIOx->BSHR = GPIO_Pin;这句最终体现在GPIO_Pin_5,GPIO_Pin_4,GPIO_Pin_12三个IO的操作有任何区别吗?

最终还能达到需要的分别把3个IO设置高吗?

void GPIO_SetBits( GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin )

{

#if defined (CH32F20x_D6)

if((GPIOx == GPIOC) && MCU_Version)

        {

        GPIO_Pin = GPIO_Pin >> 13;

}

#endif

  

    GPIOx->BSHR = GPIO_Pin;

}


您好,可以具体看一下该函数,关于GPIO_Pin = GPIO_Pin >> 13;是有限定条件的,加了if判断,主要针对于D6.s启动文件所对应MCU型号,该型号PC系列引脚只有PC13-15,无PC4之类的,因此不会出现你所说的情况。F208对应的启动文件是D8W.s这个启动文件,不需要移位。后续若有问题,可邮箱(lzs@wch.cn)和我沟通



更换D8W.s文件后正常,那再确认一下CH32F208W这个芯片的串口1能否映射到PA6,PA7


您好,可以的


CH32F208W串口不支持PA6


您好,不好意思,看了一下应用手册,F208确实不支持PA6、7的映射,感谢你的反馈。

image.png



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