0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

(exynos4412)Tiny4412裸机开发-按键检测

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-08-11 09:50 次阅读

1. 前言

Tiny4412开发是友善之臂推出的AndroidLinux学习开发板,CPU采用三星的EXYNOS4412,32位芯片,属于Cortex-A系列,主频是1.5GHZ,可以运行ubuntu、Android5.0、纯Linux等操作系统

上篇文章已经介绍过LED裸机编程,完成LED灯控制,这篇文章就介绍利用这款开发板继续完成按键编程,了解GPIO口基本的输入输出配置。

下面是开发板的实物图:

image-20220124143157723

开发板的配置:

image-20220124143510661

2. 按键编程

要完成程序开发,需要先搭建交叉编译环境,安装arm-linux-gcc编译器,上篇文章已经介绍了,这篇就不再重复。

环境搭建好,就得看原理图,了解按键接在CPU的哪个IO口,了解按键是什么电平表示按下,再去看芯片手册,找到对应IO口的配置寄存器,完成GPIO模式配置,最终完成按键检测

2.1 查看原理图

tiny4412开发板有两个原理图,分别对应底板和核心板,按键是接在底板上,下面就分别打开底板、核心板原理图,找到按键具体的接线位置。

image-20220124150737525image-20220124150829928image-20220124150929792

从原理图里看到,按键一共有4个按键,分别接在GPX3_2 GPX3_3 GPX3_4 GPX3_5 这些GPIO口上。

image-20220124153048304

2.2 查看芯片手册

在芯片手册里找到GPX3这个寄存器的位置。

image-20220124151601954image-20220124151631609

GPX3CON是模式配置寄存器。

GPX3DAT是数据输出输入控制寄存器。

按键是检测外部电平来判断按键是否按下松开,需要配置成输入模式。

2.3 编写按键检测代码

下面代码实现效果: 检测按键是否按下,按键按下后就点亮LED灯,开启蜂鸣器,按键松开就关闭LED灯,关闭蜂鸣器。

/* 蜂鸣器的寄存器---GPD0_0*/
#define GPD0CON   (*(volatile unsigned int *)0x114000A0)
#define GPD0DAT   (*(volatile unsigned int *)0x114000A4)
​
/* LED的寄存器  GPM4_0 1 2 3*/
#define GPM4CON   (*(volatile unsigned int *)0x110002E0)
#define GPM4DAT   (*(volatile unsigned int *)0x110002E4)
​
/* KEY的寄存器 GPX3 2 3 4 5*/
#define GPX3CON   (*(volatile unsigned int *)0x11000C60)
#define GPX3DAT   (*(volatile unsigned int *)0x11000C64)
​
//BEEP---GPD0_0
int main(void)
{
    /*1. 配置GPIO口模式--配置蜂鸣器*/
    GPD0CON&=~(0xF<<0*4);//清除寄存器配置
     GPD0CON|=0x1<<0*4; //配置GPIO为输出模式
 ​
     /*2. 配置GPIO口模式--配置LED灯*/
     GPM4CON&=0xFFFF0000;
     GPM4CON|=0x00001111;
 ​
     /*3. 配置GPIO口模式--配置按键*/
     GPX3CON&=0xFF0000FF;
 ​
     while(1)
     {   
         if(!(GPX3DAT&1<<2)) //判断按键是否按下
         {
             GPD0DAT|=1<<0; //输出高电平
             GPM4DAT&=~(1<<0);
         }
         else if(!(GPX3DAT&1<<3)) //判断按键是否按下
         {
             GPD0DAT|=1<<0; //输出高电平
             GPM4DAT&=~(1<<1);
         }
         else if(!(GPX3DAT&1<<4)) //判断按键是否按下
         {
             GPD0DAT|=1<<0; //输出高电平
             GPM4DAT&=~(1<<2);
         }
         else if(!(GPX3DAT&1<<5)) //判断按键是否按下
         {
             GPD0DAT|=1<<0; //输出高电平
             GPM4DAT&=~(1<<3);
         }
         else
         {
             GPD0DAT&=~(1<<0); 
             GPM4DAT|=0xF<<0;
         }
     }
     return 0;
 }
复制代码

2.4 烧写程序测试

程序编译之后会生成main.bin文件,将SD卡插入到电脑上,运行程序烧写脚本,执行dd命令,烧写成功后。

拔出SD卡,插在开发板上,选择从SD卡启动,然后按下按键测试效果。

[wbyq@wbyq sd_fuse]$ sudo ./sd_write.sh /dev/sdb ../main.bin 
复制代码

image-20220124152745788

在三星官方的手册里写明了,如果使用SD卡,SD卡内部数据该如何存放。上面烧写程序就是安装这个说明编写的代码,使用dd命令将可执行文件烧写到SD卡的对应位置。

如果使用EMMC,就是按下下面的布局:

image-20220124152945070

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10942

    浏览量

    206545
  • 开发板
    +关注

    关注

    25

    文章

    4370

    浏览量

    93433
  • Exynos4412
    +关注

    关注

    1

    文章

    8

    浏览量

    12675
收藏 人收藏

    评论

    相关推荐

    最新Cortex-a9开发板/Exynos4412/iTOP-4412开发板特点介绍

    `iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及16GB 存储,具有稳定性强、可靠性高,能适用于对性能
    发表于 11-01 11:29

    翼罗电子Samsung四核Exynos4412开发

    UT-Exynos4412开发板是一款功能极为强大的高端ARM Cortex-A9开发平台,采用Samsung最新的Exynos4412Exyno
    发表于 04-22 11:25

    免费试用“Tiny4412开发板——友善之臂Cortex-A9”

    本帖最后由 L490351555 于 2015-8-19 08:38 编辑 大家好,这两天咱们的论坛搞了一个开发板投票试用活动。现在有一个投票项就是“Tiny4412开发板——友善之臂
    发表于 08-18 19:09

    exynos4412开发板 insmod成功但没有设备文件

    基于exynos4412开发板,通过NFS挂载方式启动时,LED.ko 文件可以 insmod 成功,且可以在/dev目录下看到相应设备文件,并且正常运行;通过上述NFS文件制作成ramdisk
    发表于 02-28 19:19

    Exynos4412开发板需要注意的IP地址

    Exynos4412开发板-网络-同一网段
    发表于 12-28 07:16

    Exynos4412开发板有什么用

    以三星的四核处理器Exynos4412为例,该开发板属于armv7架构,contexA9系列,32bit,cpu4核心1.5GHZ主频,eMMC 大小型号为:KLM4G。ARM里面,启动MMU以后
    发表于 07-16 06:54

    TINY4412 UART程序设计得相关资料分享

    嵌入式实验: TINY4412 UART 程序设计一、实验目的熟悉UART通信相关的寄存器的功能和设置方法,设置引脚复用,选择UART接收和发送对应的引脚用于UART通信,数据流格式设置,设置
    发表于 11-09 06:11

    基于Exynos4412主芯片的iTOP-Exynos4412开发板有何优点

    光盘资料+网盘资料+配套视频+售后支持,助您加速学习研发的进程 产品介绍 iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储
    发表于 12-23 07:35

    如何去实现Exynos4412开发板的文件传输呢

    tftp和fastboot是什么?fastboot是怎样通过u***线进行连线的?如何去实现Exynos4412开发板的文件传输呢?
    发表于 12-27 07:17

    Exynos4412三星ARM四核旗舰开发平台android4.0GPS功能

    关键词:ARM , 4412 , 开发板 经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 44
    发表于 10-28 00:56 320次阅读

    samsung首款四核处理器Exynos 4412开发板友坚上市

    关键词:开发板 UT-Exynos4412开发板是一款功能极为强大的高端ARM Coretex-A9开发平台,采用Samsung最新的Exynos4
    发表于 11-01 07:24 441次阅读

    海天雄电子Exynos4412核心板简介

    Exynos4412核心板基于Samsung Cortex-A9系列Exynos4412四核应用处理器,采用SCP封装,板上集成了2GB DDR3,8GB eMMC,提供专用的三星电源管理芯片,系统更加稳定可靠。
    的头像 发表于 11-04 10:33 2474次阅读
    海天雄电子<b class='flag-5'>Exynos4412</b>核心板简介

    友善之臂Tiny4412核心板介绍

    Tiny4412是一款高性能的四核Cortex-A9核心板,由广州友善之臂设计、生产和发行销售。
    的头像 发表于 11-05 17:40 1.1w次阅读
    友善之臂<b class='flag-5'>Tiny4412</b>核心板介绍

    使用EXYNOS4412处理器实现防跌倒系统的代码免费下载

    本文档的主要内容详细介绍的是使用EXYNOS4412处理器实现防跌倒系统的代码免费下载。
    发表于 12-02 08:00 2次下载
    使用<b class='flag-5'>EXYNOS4412</b>处理器实现防跌倒系统的代码免费下载

    (exynos4412)Tiny4412裸机开发-点亮LED

    这篇文章介绍利用这款开发板完成裸机开发,不涉及操作系统,直接当做单片机一样,完成LED灯、蜂鸣器的编程,了解这款芯片与常规的Cortex-M系列芯片编程有何区别。
    的头像 发表于 08-12 09:18 3462次阅读