Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
GPIO
N32G45x添加一个无聊的引脚查找函数
发布于 2022-01-13 17:43:46 浏览:1070
订阅该版
添加个无聊的代码,查找引脚一下,纯属悦乐 ``` uint8_t get_pin_index(char port_name,uint8_t index) { if((index > 15)||(port_name < 'A')||(port_name > 'G')) { return 0;//0是空脚 } struct pin_index *dat = (struct pin_index *)&pins[0]; GPIO_Module *gpio; int port_index = (1 << index); uint8_t len = ITEM_NUM(pins); uint8_t i = 0; gpio = (GPIO_Module*)(GPIOA_BASE + 0x400*(port_name - 'A')); for(i=0;i
pin == port_index) { if(dat->gpio == gpio) { return i; } } dat++; } return 0; } ``` 用法: ``` uint8_t led1,led2,led3; led1 = get_pin_index('B',5); led2 = get_pin_index('B',4); led3 = get_pin_index('A',8); ``` 修改一下宏定义,原来最前面那个是0,index都没有用上,导致查找函数多一点运算和内存,修改后就可以使用减法完成循环了 ``` #define __N32_PIN(index, rcc, gpio, gpio_index) \ { \ index, RCC_##rcc##_PERIPH_GPIO##gpio, GPIO##gpio, GPIO_PIN_##gpio_index \ , GPIO##gpio##_PORT_SOURCE, GPIO_PIN_SOURCE##gpio_index \ } uint8_t get_pin_index(char port_name,uint8_t index) { if((index > 15)||(port_name < 'A')||(port_name > 'G')) { return 0;//0是空脚 } struct pin_index *dat = (struct pin_index *)&pins[0]; GPIO_Module *gpio; int port_index = (1 << index); uint8_t len = ITEM_NUM(pins); gpio = (GPIO_Module*)(GPIOA_BASE + 0x400*(port_name - 'A')); while(len--) { if(dat->pin == port_index) { if(dat->gpio == gpio) { return dat->index; } } dat++; } return 0; } ```
2
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
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
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
6
五分钟玩转RT-Thread新社区
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
Bootloader
AT
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
UART
cubemx
ota在线升级
ESP8266
WIZnet_W5500
BSP
PWM
packages_软件包
flash
freemodbus
潘多拉开发板_Pandora
GD32
ADC
定时器
flashDB
keil_MDK
编译报错
ulog
socket
rt_mq_消息队列_msg_queue
msh
中断
Debug
SFUD
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
821
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
2
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部