Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
GPIO
N32G45x添加一个无聊的引脚查找函数
发布于 2022-01-13 17:43:46 浏览:648
订阅该版
添加个无聊的代码,查找引脚一下,纯属悦乐 ``` 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
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
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
串口
LWIP
SPI
Env
Bootloader
AT
ART-Pi
Hardfault
CAN总线
FinSH
USB
文件系统
DMA
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
ota在线升级
WIZnet_W5500
I2C_IIC
UART
flash
cubemx
packages_软件包
freemodbus
PWM
潘多拉开发板_Pandora
定时器
ADC
BSP
中断
编译报错
socket
keil_MDK
MicroPython
GD32
msh
Debug
ulog
SDIO总线
SFUD
rt_mq_消息队列_msg_queue
flashDB
本月问答贡献
用户名由3_15位
17
个答案
3
次被采纳
xiaorui
7
个答案
3
次被采纳
sakumisu
4
个答案
3
次被采纳
三世执戟
31
个答案
1
次被采纳
梦笑真美
20
个答案
1
次被采纳
本月文章贡献
比特饼干
2
篇文章
6
次点赞
Z_Y
2
篇文章
5
次点赞
Alipay
2
篇文章
3
次点赞
xusiwei1236
2
篇文章
3
次点赞
yinxiangxv
2
篇文章
3
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部