打印
[技术问答]

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

[复制链接]
12400|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
loony85|  楼主 | 2021-8-24 16:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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 | 只看该作者
可以看看这个功能分配表

299636124d641446b5.png (290.18 KB )

299636124d641446b5.png

使用特权

评论回复
板凳
loony85|  楼主 | 2021-8-25 08:12 | 只看该作者
zhugjbest 发表于 2021-8-24 19:26
可以看看这个功能分配表

感谢分享。

使用特权

评论回复
地板
loony85|  楼主 | 2021-8-25 08:18 | 只看该作者
呃,刚又去官网看了一下资料,发现有管脚的配置说明,所以这不是个BUG,是我自己的问题。
草率了。
此贴到此终结。

使用特权

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

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

使用特权

评论回复
6
loony85|  楼主 | 2021-12-23 14:03 | 只看该作者
martinhu 发表于 2021-8-25 09:19
F005不是一个功能全在相同复用编号里面的

是的,谢谢。

使用特权

评论回复
7
alexzhou88| | 2021-12-23 16:11 | 只看该作者
谢谢分享。

使用特权

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

本版积分规则

3

主题

20

帖子

1

粉丝