完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
mark,坐等原因
250 -6 这俩数看着不一样,但极有可能是一样的,只不过,第二次把 250 先转换成有符号 char 整型了,然后再扩展到有符号 int 整型,打印出来的值就变负数了。 那么,为什么是 250(-6) ? rt_base_t rt_pin_get(const char *name) { RT_ASSERT(_hw_pin.ops != RT_NULL); RT_ASSERT(name[0] == 'P'); if(_hw_pin.ops->pin_get == RT_NULL) { return -RT_ENOSYS; } return _hw_pin.ops->pin_get(name); } RT_ENOSYS 定义的值就是6。return -RT_ENOSYS 返回的就是 -6。还真的是没实现这个接口。 你用的版本很早了吧。 drv_gpio.c 文件第一个函数 stm32_pin_get 就是实现。 |
|
|
|
从这个问题,又可以看出来,返回值的处理是迷惑的。
返回非负数时表示引脚号。返回负数时,表示函数执行错误了。 个人认为 rt_pin_get 的实现是可以与芯片无关的,rt-thread 使用宝典(2021-1210更新) 这里提到的计算 pin 号的心算公式,可以适用到绝大多数的芯片上。 |
|
|
|
在drv_gpio.c驱动里面添加对应的pin_get操作
|
|
|
|
调试状态下,单步执行就可以知道哪里有问题了
|
|
|
|
你看一下gpio的驱动是否支持这个方法,目前这个方法只支持了stm32等少数系列bsp
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
883 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3025 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1409 浏览 0 评论
2039 浏览 0 评论
1574 浏览 0 评论
75139 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 15:48 , Processed in 0.548941 second(s), Total 46, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号