打印
[应用方案]

【NuMaker-M471测评】 GPIO口的使用

[复制链接]
2508|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
可能是有段时间没有接触新唐的新品之故吧,在例程中居然没有找到以往常见的闪灯程序,它可是打开GPIO口使用之门的呀!
没办法只能自行编一个看了,为了能快速入手,可在例程Template的基础上来进行。
由于要用到GPIO口,故要在Library目录下添加文件gpio.c。
此外,从开发板的原理图可知,LEDR1的引脚连接为PB14,且一端接到VDD,见图1所示。
                              
图1 LED电路
为此,要点亮LEDR1只需令其输出低电平接口,相应的程序如下:
int main(void)
{
   SYS_Init();
         GPIO_SetMode(PB,BIT14, GPIO_MODE_OUTPUT);
    PB14= 0;
   while(1);
}
经编译下载,其运行效果如图2所示。
图2 运行效果
要实现闪灯效果,延时函数是必不可少的,但寻遍各处也没找到类似Delay ms()或Delayus()之类的函数,无奈只好先将其放下,再测试一下按键的用法。
板载按键的电路如图3所示,其连接的引脚为PH4,由此可知当按键按下时,它将输出低电平,否则一直处于高电平状态。
图3 按键电路
实现按键测试的思路是当按键按下时点亮LED,否则将熄灭LED,其程序如下:
int main(void)
{
SYS_Init();
GPIO_SetMode(PB, BIT14, GPIO_MODE_OUTPUT);
GPIO_SetMode(PH, BIT4, GPIO_MODE_INPUT);
PB14 = 1;
while(1)
{
if(PH4==0)  PB14 = 0;
else
{
PB14 = 1;
}
}
}

经程序编译下载,证明该用法正确。
要编写闪灯程序,该如何获取延时函数呢?
我们可以使用计时器来获得,当然这要在Library目录下再添加一个文件timer.c,所用的函数则为TIMER_Delay()。
相应的闪灯程序为:
int main(void)
{
SYS_Init();
GPIO_SetMode(PB, BIT14, GPIO_MODE_OUTPUT);
GPIO_SetMode(PH, BIT4, GPIO_MODE_INPUT);
PB14 = 1;
while(1)
{
PB14 = 0;
TIMER_Delay(TIMER0, 1000000);
PB14 = 1;
TIMER_Delay(TIMER0, 1000000);
}
}

至此,我们就完全地回到了以往的开发起点。
有了前面的基础,下面再来测试一下Arduino接口的用法。
1.蜂鸣器的测试
蜂鸣器有2种,一种是有源蜂鸣器,另一种是无源蜂鸣器,其中有源蜂鸣器加电即可发出声响;而无源蜂鸣器相应外加脉冲信号来工作。
测试中,蜂鸣器所连接的引脚为PA2,见图4和图5所示。
图4 有源蜂鸣器连接
有源蜂鸣器的测试程序为:
int main(void)
{
SYS_Init();
GPIO_SetMode(PB, BIT14, GPIO_MODE_OUTPUT);
GPIO_SetMode(PA, BIT2, GPIO_MODE_OUTPUT);
GPIO_SetMode(PH, BIT4, GPIO_MODE_INPUT);
PB14 = 1;
while(1)
{
if(PH4==0)  
{
PB14 = 0;
PA2= 0;
}
else
{
PB14 = 1;
PA2= 1;
}
}
}

图5 有源蜂鸣器连接
无源蜂鸣器的测试程序为:
int main(void)
{
SYS_Init();
GPIO_SetMode(PB, BIT14, GPIO_MODE_OUTPUT);
GPIO_SetMode(PA, BIT2, GPIO_MODE_OUTPUT);
GPIO_SetMode(PH, BIT4, GPIO_MODE_INPUT);
PB14 = 1;
while(1)
{
             PB14 = 0;
PA2= 0;
TIMER_Delay(TIMER0, 500000);
PB14 = 1;
TIMER_Delay(TIMER0, 500000);
PA2= 1;
}
}

经编译下载,证明此使用方法正确。
2.风扇模块的测试
风扇模块是一种自带驱动的模块,该模块所连接的引脚为PA2,见图6所示。
图6 风扇模块电路连接
风扇模块的测试程序与蜂鸣器的测试程序相同,这里从略。
经编译下载,证明此使用方法正确。
因此可知,在改变延时超短的情况下,可达到调节风扇转速的作用。

使用特权

评论回复
沙发
tail066| | 2021-8-13 15:31 | 只看该作者
你这手里的小模块可是真不少

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2021-8-13 19:56 | 只看该作者
哈哈,积累的时间久点就丰富了。

使用特权

评论回复
地板
huahuagg| | 2023-9-27 19:55 | 只看该作者
板子上好像没多余的东西。

使用特权

评论回复
5
yiy| | 2023-9-28 11:26 | 只看该作者
轻松点灯。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

2675

帖子

37

粉丝