Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
AB32VG1
GPIO
AB32VG1 GPIO编号是多少
发布于 2021-09-09 16:28:43 浏览:1114
订阅该版
[tocm] ### **AB32VG1 GPIO 编号那点事** 本文针对小白入门编写,请高手笔下留情。 在使用第三方库的时候通常要使用到引脚号,比如那个i2c吧,就用到引脚编号了,那个号码到底是什么鬼呢?这个文件适合你了。高手都喜欢说,看代码。对于我等低手,我们就用能用的函数,把它打印出来就得了。高级货本文不说,就用基本的方法把它查出来。 当然,如果你够用心,会发现这个gpio中的代码也是有bug的。 **drv_gpio.c**中有这么个玩样。哎,不是说不看代码吗?好吧,跳过,想看的看一下 ``` struct port_info { uint8_t start_pin;//这个是sub_index,PAPB等口的首位编号多数情况是0 uint8_t delta_pin;//这个是sub_nums,PAPB等口的总脚数 uint8_t total_pin;//从后面表中可以看出,是前面列出脚的总个数,即本行起始占位 }; /* It needs to be adjusted to the hardware. */ static const struct port_info port_table[] = { {0, 8, 0}, /* PA0-PA7 */ {0, 5, 8}, /* PB0-PB5 */ {0, 8, 13}, /* PE0-PE7 */ {0, 6, 21}, /* PF0-PF6 */ }; ``` 不管它了,有个函数在mian的示列里面就有,那就是很喜欢用的** rt_pin_get()**,咱们啥也不知道,就知道这个是用来得到引脚号的,输入的参数是字符串"PA.1"这种玩样。 那就把它打出来就好了嘛,不废话了,直接复制,里面有个p的验证比较重要,不然会卡死 ``` #include
#include "board.h" static int gpio_num(int argc, char **argv) { int result = 0; char name[6] = {0}; char i; char len; if (argc != 2) { result = -RT_ERROR; goto _exit; } len = rt_strlen(argv[1]); if(len >= 6) { goto _exit; } rt_memcpy(name,argv[1],len); for(i=0;i
= 'a') { name[i] -= 32; } } if(name[0] != 'P') { goto _exit; } if(!((name[1] == 'A')||(name[1] == 'B')||(name[1] == 'E')||(name[1] == 'F'))) { goto _exit; } result = rt_pin_get(name); if (result >= 0) { rt_kprintf("[%s] : %d\n",name,result); return RT_EOK; } _exit: rt_kprintf("Usage: gpio_num PA.1 , only PA0-PA7,PB0-PB5,PE0-PE7,PF0-PF6\n"); return result; } /* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(gpio_num, printf gpio numbers); ``` gpio查找的bug出现在这里,没有啥子好讲的,低层是做加减法得到的序号,并没有做限制造成的,使用的时候小心一点就可。当然,可以自己写一个全部打印的函数,都是顺着来的。 ![gpio_bug.png](https://oss-club.rt-thread.org/uploads/20210909/d65af920936d5c25f7b441aadbbbf4b3.png) ** ### 下载 ** 喜欢下载的来搞,工程自己建去,studio直接生成工程,添加进来就可以编译。 [gpio_num.c](https://oss-club.rt-thread.org/uploads/20210909/d1ed84b70b3981775b04c1c4cd699e92.c)
9
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
wlof
这个家伙不懒,什么也没写
文章
16
回答
64
被采纳
0
关注TA
发私信
相关文章
1
drivers- pin
2
bsp 里面的drivers/gpio.c 少了一个功能
3
stm32f407移植RTT中gpio设备驱动问题
4
config PB4(NJTRST) to GPIO
5
RT-Thread的GPIO设备驱动问题
6
关于pin.c文件中语句可能出现的bug
7
RT-Thread学习笔记--线程创建与官方Pin设备驱动调用
8
【应用笔记】小白也能玩转RT-Thread之通用GPIO设备【官方出品
9
串口引脚定义中的GPIO_Pin_sources是社么意思?
10
RTT -GPIO 使用例程
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
SFUD
msh
ulog
C++_cpp
MicroPython
本月问答贡献
三世执戟
5
个答案
1
次被采纳
RTT_逍遥
4
个答案
1
次被采纳
KunYi
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
JonasWen
1
个答案
1
次被采纳
本月文章贡献
出出啊
1
篇文章
3
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部