loony85 发表于 2021-8-24 16:24

分享一个HC32F005的GPIO复用配置的bug

本帖最后由 loony85 于 2021-8-24 16:27 编辑

最近要实现一个PWM控制泵转速的功能,之前在硬件设计的时候预留了一个I/O口,一直没有使用。于是根据例程写了一段程序,烧脑的事情来了:

例程使用的P34口,
    GpioInitStruct.enDrv= GpioDrvH;
    GpioInitStruct.enDir= GpioDirOut;
    Gpio_Init(GpioPort3, GpioPin4, &GpioInitStruct);
    Gpio_SetAfMode(GpioPort3, GpioPin4, GpioAf1);
    Pca_M0Init(&PcaInitStruct);

例程的P34配置为GpioAf1,对应PCA 的模块0,可以正常实现PWM输出。
我的板子用的P32作为PWM输出端口,根据数据手册第21页中GPIO的功能分配表,P32对应PCA_CH2,根据在表中的排序,与P34的一致,于是也按GpioAf1设置GPIO口,但是一致没成功。
    GpioInitStruct.enDrv= GpioDrvH;
    GpioInitStruct.enDir= GpioDirOut;
    Gpio_Init(GpioPort3, GpioPin2, &GpioInitStruct);
    //Gpio_SetAfMode(GpioPort3, GpioPin2, GpioAf1);//输出3.3V
    Gpio_SetAfMode(GpioPort3, GpioPin2, GpioAf2);    //pwm输出
    Pca_M2Init(&PcaInitStruct);

这个问题困扰了我几个小时,最后我试着用GpioAf2设置GPIO口,PWM一下就出来!!!

不知道是手册的问题,还是我没找到具体说明的位置。

另外还有个问题,也是这个GPIO复用功能配置的问题,P15在复用为UART的时候,如果按照手册应该配置为GpioAf5,但实际应配置为GpioAf6才能使用。



zhugjbest 发表于 2021-8-24 19:26

可以看看这个功能分配表

loony85 发表于 2021-8-25 08:12

zhugjbest 发表于 2021-8-24 19:26
可以看看这个功能分配表

感谢分享。

loony85 发表于 2021-8-25 08:18

呃,刚又去官网看了一下资料,发现有管脚的配置说明,所以这不是个BUG,是我自己的问题。
草率了。
此贴到此终结。

martinhu 发表于 2021-8-25 09:19

loony85 发表于 2021-8-25 08:18
呃,刚又去官网看了一下资料,发现有管脚的配置说明,所以这不是个BUG,是我自己的问题。
草率了。
此贴到 ...

F005不是一个功能全在相同复用编号里面的

loony85 发表于 2021-12-23 14:03

martinhu 发表于 2021-8-25 09:19
F005不是一个功能全在相同复用编号里面的

是的,谢谢。

alexzhou88 发表于 2021-12-23 16:11

谢谢分享。
页: [1]
查看完整版本: 分享一个HC32F005的GPIO复用配置的bug