嵌入式技术论坛
直播中

张辉

7年用户 1370经验值
私信 关注
[问答]

为何RT版本4.1.0,rt_pin_get()函数返回引脚编号不正确?

芯片型号STM32L431,RT版本4.1.0,采用RT Studio构建工程,rt_pin_get()返回的引脚编号为负数,采用GET_PIN()才能能获取到正确编号。

回帖(5)

刘娟

2023-5-17 14:22:05
rt_pin_get() 返回的引脚编号为负数,这个入参设置的是什么?
举报

张辉

2023-5-17 14:22:13
就是按rt_pin_get(\"PB.2\")这样调用,返回的是是负数编号,但是采用GET_PIN(B,2),这样的话就是正数。
1.jpg
rt_pin_get("PB.2")的打印值是-6,但是GET_PIN(B,2)打印值是17。17是正确的,drv.gpio里面也是17。

1.jpg
也已經使能了PIN驱动组件

1.jpg
举报

刘娟

2023-5-17 14:22:25
用最新的 代码试试,建议直接算出来,用宏定义 写个 引脚号,不需要通过这样的方式获取
如 #define LED_RED_PIN 17
举报

张辉

2023-5-17 14:22:32
不少软件包采取了这样的获取引脚方式,问题显得很隐蔽,不容易发现
举报

刘娟

2023-5-17 14:22:40
那就必须使用 GET_PIN(B,2) 这种方式,由于这个 GET_PIN 是个宏,如果多传递一个 PB,造成底层驱动无法计算获取到 实际的引脚
举报

更多回帖

发帖
×
20
完善资料,
赚取积分