【经验】关于GPIO点亮LED灯、输入输出、中断及映射实验详解
若贝微电子沉芯芯片支持通过软件对内部虚拟引脚按照组进行重构(Remap),每个组八个引脚,可以和物理引脚进行分组映射,比如代表虚拟引脚的GPA,可以映射到物理的引脚C7~C0,代表虚拟引脚的GPD,可以映射到物理引脚B7~B0。每组映射比特位也相互对应,如GPA0对应C0,GPA5对应C5等。
图1:沉芯芯片内部虚拟引脚与物理引脚按组重构(Remap)
一、点亮LED灯实验
实验简述:通过设置GPIO的高低来点亮板卡上的贴片LED灯。
操作流程:
1、首先是初始化GPIO引脚,本案例采用C组引脚中的第0号引脚作为LED灯的个控制信号;
2、通过设置高电平,点亮LED灯;
3、通过设置低电平,熄灭灯;
4、往复循环,实现灯的闪烁;
图2:点亮LED灯函数流程
示例代码:
int main( void )
{
GPIO_InitTypeDef TestGPIO; //选中C组Pin 0来点亮LED
TestGPIO.Pin= GPIO_PIN_0; //设置为输出模式
TestGPIO.Mode=GPIO_MODE_OUTPUT;
Ro_GPIO_Init(GPIOC,&TestGPIO); //初始化GPIO
while(1)
{
if(i==400000)
{
//设置GPIOC Pin0输出为高,点亮LED
Ro_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET);}
else if(i==800000)
{
//设置GPIOC Pin0输出为低,关掉LED
Ro_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET);
i=0;
}
i++;
}
}
函数解释:
GPIO初始化:
void Ro_GPIO_Init ( GPIO_TypeDef *GPIOx, GPIO_InitTypeDef * GPIO_Init);
参数:
GPIOx:GPIO对应的组,如GPIOA-GPIOM
GPIO_Init:是一个结构体,GPIO对应的管脚。其中,Pin对应的是GPIO_PIN_0-GPIO_PIN_7,Mode对应的有:
GPIO_MODE_INPUT;
GPIO_MODE_OUTPUT;
GPIO_MODE_IT_RISING;
GPIO_MODE_IT_FALLING;
GPIO_MODE_IT_RISING_FALLING
二、GPIO输入输出实验
实验简述:
设置GPIOD组Pin0为输入,GPIOC组Pin0为输出,然后通过跳线来短接D0C0,使C0循环输出高低,读取D0,通过串口将其信息输出至电脑端。
操作流程:
首先设置C组的第0比特作为输出,设置D组的第0比特作为输入,然后通过Ro_GPIO_WritePin将C组的第0比特设置为高电平,此时读入D组GPIO的状态值,显示到电脑端。然后设置C组的GPIO值为低电平,读出D组的GPIO值。
图3 GPIO输入输出流程图
示例代码:
void Ro_INOUT_testDinCout(void)
{
GPIO_InitTypeDef TestGPIO;
TestGPIO.Pin=GPIO_PIN_0; //设置C组的Bit 0
TestGPIO.Mode=GPIO_MODE_OUTPUT; //设置C组的GPIO为输出
Ro_GPIO_Init(GPIOC,&TestGPIO); //初始化IO
TestGPIO.Mode=GPIO_MODE_INPUT; //设置D组为输入
Ro_GPIO_Init(GPIOD,&TestGPIO);
Ro_GPIO_WriteGroup(GPIOC, 0xff);
while(1)
{
if(i==100000)
{
Ro_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET); // 设置C组第0比特高电平
printf("C OUT High ,D IN %x\r\n", Ro_GPIO_ReadGroup(GPIOD));
}
else if(i==200000)
{
i=0;
Ro_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET); // 设置C组第0比特低电平
printf("C OUT High ,D IN %x\r\n", Ro_GPIO_ReadGroup(GPIOD));
}
i++;
}
}
函数注释:
读取输入GPIO当前组的管脚的状态:GPIO_PinState Ro_GPIO_ReadGroup(GPIO_TypeDef *GPIOx);
参数:
GPIOx:GPIO需要读取的组,GPIOA-GPIOM
GPIO_PinState 返回值为当前组8个GIPO管脚的状态.
三、GPIO中断实验
实验简述:
设置GPIOD组Pin0为上升沿触发中断,Pin1为下降沿触发,Pin2为电平变化触发,GPIOC组Pin0为循环输出高低电平,然后通过跳线来短接D0和C0,通过串口将中断触发信息输出至电脑端。
操作流程:
先设置C组合D组的引脚配置,设置D组为下降沿触发,然后使能管脚中断,为C组第0比特设置输出高电平再设置为低电平。
图4 GPIO中断实验流程图
示例代码:
void Ro_INOUT_testDinCout(void)
{
GPIO_InitTypeDef TestGPIO;
TestGPIO.Pin=GPIO_PIN_0;
TestGPIO.Mode=GPIO_MODE_OUTPUT;
Ro_GPIO_Init(GPIOC,&TestGPIO);
//下降沿触发中断使用GPIO_MODE_IT_FALLING;
//上升沿触发中断使用GPIO_MODE_IT_RISING
//电平变化触发中断使用GPIO_MODE_IT_RISING_FALLING
TestGPIO.Mode= GPIO_MODE_IT_FALLING;
Ro_GPIO_Init(GPIOD,&TestGPIO);
Ro_GPIO_WriteGroup(GPIOC, 0xff);
while(1)
{
if(i==100000)
{
Ro_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_SET);
}
else if(i==200000)
{
i=0;
Ro_GPIO_WritePin(GPIOC,GPIO_PIN_0,GPIO_PIN_RESET);
}
i++;
}
}
四、GPIO映射实验
实验简述:设置GPIOGPC组映射(Remap)到物理引脚D组,然后GPC组输出高低电平,用万用表或者示波器测量D组变化。
操作流程:
图5 GPIO映射实验流程图
示例代码:
void Ro_CD_Remap(void)
{
GPIO_InitTypeDef TestGPIO;
TestGPIO.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
TestGPIO.Mode=GPIO_MODE_OUTPUT;
Ro_GPIO_Init(GPIOC,&TestGPIO);
Ro_GPIO_WriteGroup(GPIOC, 0xff);
while(1)
{
if(i==100000)
{
Ro_GPIO_WritePin(GPIOC,0xFF,GPIO_PIN_SET);
}
else if(i==200000)
{
i=0;Ro_GPIO_WritePin(GPIOC,0xFF,GPIO_PIN_RESET);
}
i++;
}
}
- |
- +1 赞 0
- 收藏
- 评论 0
本文由奶爸工程师转载自若贝微电子,原文标题为:GPIO介绍,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】窗口看门狗实验步骤及代码示例
看门狗负责定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗在程序的中断中拥有最高的优先级,防止程序跑飞及防止程序在线运行的时候出现死循环。而窗口看门狗通常被用来监测应用程序背离原有的运行序列导致的故障。本文介绍窗口看门狗实验步骤及代码示例。
设计经验 发布时间 : 2022-09-24
【经验】浅析Robei IDE工具的使用步骤
Robei IDE工具是若贝公司研发用于沉芯系列芯片的项目开发与编程。本文详细解析了Robei IDE工具的使用步骤。
设计经验 发布时间 : 2022-09-25
Robei EDA软件开放免费试用,可与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接
EDA软件是芯片研发设计环节必不可少的工具。3月19日,国产EDA公司若贝微电子在平台上线了Robei EDA软件免费试用服务,面向所有企业用户提供此服务。Robei EDA软件是一个全新的面向对象的可视化芯片设计软件,支持基于Verilog语言的集成电路前端设计与验证。该软件具备可视化架构设计、核心算法编程、自动代码生成、语法检查、编译仿真与波形查看等功能。另外,Robei EDA软件以易用和易
服务资源 发布时间 : 2021-03-22
异构芯片成未来趋势,解析已成功量产的国产自研异构芯片
若贝微电子量产的一颗中等型号沉芯异构芯片编号为RAC102XXX,该芯片支持RISC-V开放指令集的RV32IM,三级流水,支持10MHZ~200MHZ主频, 72个32位元的动态可重构计算单元、12个32位乘法器及单精度浮点计算单元(IEEE-754标准)、通用接口为SPI、QSPI、UART、PWM、I2C、SDRAM(RAC101和RAC102不含)、按组可配置GPIO等。
行业资讯 发布时间 : 2022-03-16
2024全国大学生集成电路创新创业大赛——Robei职业技能杯
随着中国集成电路产业的快速发展,集成电路技能型人才的缺乏已经成为困扰行业的一个难题。为适应行业对集成电路技能型人才的需求,2024全国大学生集成电路创新创业大赛开设职业技能赛项,青岛若贝电子有限公司加入并开启第一届集创赛Robei职业技能杯,以下是大赛相关内容。
原厂动态 发布时间 : 2024-06-18
Robei EDA集成电路实验平台采用IP白盒子,搭载核心开发板和实验箱,助力提高设计和动手能力
为增强学生设计实战能力,若贝微电子Robei EDA集成电路实验平台:只需要学生在C语言的基础上,快速了解和学习IP设计中的硬件描述语言Verilog语言。该平台同时培养学生的软件和硬件能力,并增强和拓展学生就业技能和操作实战能力。为提高中国的核心高科技技术人才,若贝公司结合自己企业特色,增强产学合作,培养更优秀的设计人才。
产品 发布时间 : 2024-03-01
什么是我国芯片行业“卡脖子”的根本原因?
国外对于芯片设计上游EDA与IP的垄断,使得我国芯片技术成为了掣肘,唯有加大自主研发和政策扶持,完善EDA软件和IP才能对芯片设计行业有进一步的促进作用。Robei EDA软件是由若贝公司自主研发的一款全新的集成电路设计工具。采用框图和代码相融合的设计模式,自动生成端口定义的Verilog代码以及约束文件。
原厂动态 发布时间 : 2021-06-18
若贝微电子EDA软件集成可视化和模块化分层设计理念,采用透明、开放模型IP资源,助力加快设计速度
Robei EDA工具,是一款全新的集成电路前端设计、仿真工具,最新可视化的分层设计理念、透明的模型库,以及非常友好的用户界面。Robei软件将芯片设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线。
原厂动态 发布时间 : 2022-06-15
【软件】若贝微电子推出最新Robei 3.5.5 版本,采用工业级标准的设计与仿真,让EDA设计不再繁杂
若贝微电子推出最新的Robei 3.5.5 版本,采用工业级标准的设计与仿真,让EDA设计不再繁杂。Robei一直以直观、简单、易用为核心,为广大客户提供可视化、面向对象的专业EDA工具。Robei具备可视框图设计、面向对象的设计、编写代码、语法检查、仿真与波形查看、生成Verilog代码、配置引脚约束等功能。同时,Robei在用户体验上面做到极致,一切为用户的易用和方便、直观为主。
产品 发布时间 : 2024-02-03
若贝微电子(Robei)自适应芯片选型指南
目录- 自适应芯片RAL1XX系列产品定义 自适应芯片选型介绍
型号- RAL1XX系列,RAL101C,RAL102C,RAL103C,RAL102A,RAL103A,RAL101,RAL102,RAL103,RAL101M,RAL102M,RAL103M,RAL101I,RAL102I,RAL103I
Robei高端机器人平台
Robei高端可重构机器人平台是一款基于FPGA的搬运机器人平台,涵盖传统的环境感知,测量以及自动驾驶和抓取功能。该机器人采用麦克纳姆轮,可以横向移动。该平台是验证开发、蓝牙通信、物联网、无人驾驶、视觉识别、显示控制、机器人控制的高端演示平台。
产品 发布时间 : 2024-02-02
RAC101系列沉芯异构芯片
型号- RAC103,RAC102IQ064X,RAC103C,RAC101C,RAC102C,RAC101IQ064N,RAC103I,RAC101I,RAC102I,RAC102 系列,RAC101,RAC102,RAC102IQ064N,RAC101 系列
电子商城
服务
世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。
实验室地址: 深圳 提交需求>
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
登录 | 立即注册
提交评论