搜索
热门关键词:
汽车电子
ARM
瑞萨
电容
Microsemi
手机版
官方微博
微信公众号
登录
|
免费注册
首页
新闻
新品
文章
下载
电路
问答
视频
职场
杂谈
会展
工具
博客
论坛
在线研讨会
技术频道:
单片机/处理器
FPGA
软件/编程
电源技术
模拟电子
PCB设计
测试测量
MEMS
系统设计
无源/分立器件
音频/视频/显示
应用频道:
消费电子
工业/测控
汽车电子
通信/网络
医疗电子
机器人
当前位置:
EEChina首页
›
论坛
›
新手园地
返回列表
查看:
1285
|
回复:
0
【教程8】疯壳·ARM功能手机-GPIO实验教程
[复制链接]
Linda-x
Linda-x
当前离线
积分
9771
发表于 2022-8-12 14:44:05
|
显示全部楼层
|
阅读模式
白皮书下载:测量系统构建完整指南
贸泽电子有奖问答视频,回答正确发放10元微信红包
关键词:
ARM
,
功能手机
,
GPIO
,
实验教程
,
寄存器
ARM
功能手机
——疯壳·开发板系列
GPIO实验教程
图1
第一节
LED
硬件
电路
板子中有一个可控LED,接在DA14580的P24引脚,LED串联1K的限流
电阻
,如下图所示:
图2
第二节 GPIO寄存器
2.1 GPIO引脚介绍
DA14580的I/O引脚功能可以通过软件配置,分为4组,分别为Port0、Port1、Port2、Port3,其中Port2只在QFN40与QFN48封装的芯片中,Port3只在QFN48封装的芯片中。
Port0有8个引脚,Port1有6个引脚(其中包括DEBUG引脚SW_CLK与SWDIO),Port2有10个引脚,Port3有8个引脚;
每个引脚都可以选择上拉或者下拉25KOhm的电阻;
每个引脚上拉
电压
在VBAT3V(降压模式)与VBAT1V(升压模式)两者可选;
4路模数转换的引脚固定分配为Port0中的0:3引脚;
当系统进入睡眠模式时,引脚保持最后的状态。
2.2寄存器介绍
2.2.1 P0数据寄存器
图3
15:8位:保留不使用;
7:0位:写该寄存器则设置P0输出寄存器的值,读该寄存器则返回P0口的值。
2.2.2 P0设置数据寄存器
图4
15:8位:保留不使用;
7:0位:写’1’到对应位则对应的引脚置’1’,写’0’无效,读该寄存器则返回0。
2.2.3 P0复位数据寄存器
图5
15:8位:保留不使用;
7:0位:写’1’到对应位则对应的引脚置’0’,写’0’无效,读该寄存器则返回0。
2.2.4 P00模式寄存器
图6
15:10位:保留不使用;
9:8位:设置引脚的上拉、下拉电阻的模式,00为输入,无电阻;01为输入,上拉电阻;10为输入,下拉电阻;11为输出,无电阻;在
ADC
模式中该位的设置无效。
7:5位:保留不使用;
4:0位:设置引脚功能,0~25分别对应不同的功能,具体看上图,注:当一个输入功能设置为多个引脚时,引脚序号越低优先级越高,即优先选用序号低的引脚设置为该功能。P0的优先级比P1的高。
2.2.5 P1~P3的寄存器配置
参照P0寄存器的配置,需要注意的是P14与P15两个引脚模式的默认值是1,即默认上拉电阻。
注:P14与P15为SWD调试接口的时钟与数据接口,在使用Jlink调试过程中不要使用这两个引脚。
2.3 寄存器配置讲解
#define P0_DATA_REG (* ( volatile uint16*)0x50003000)
#define P0_SET_DATA_REG (* ( volatile uint16*)0x50003002)
#define P0_RESET_DATA_REG (* ( volatile uint16*)0x50003004)
#define P00_MODE_REG (* ( volatile uint16*)0x50003006)
#define P01_MODE_REG (* ( volatile uint16*)0x50003008)
#define P02_MODE_REG (* ( volatile uint16*)0x5000300A)
#define P03_MODE_REG (* ( volatile uint16*)0x5000300C)
#define P04_MODE_REG (* ( volatile uint16*)0x5000300E)
#define P05_MODE_REG (* ( volatile uint16*)0x50003010)
#define P06_MODE_REG (* ( volatile uint16*)0x50003012)
#define P07_MODE_REG (* ( volatile uint16*)0x50003014)
如果对P0整体操作,可以使用P0_DATA_REG寄存器,若使P0[7:0] = 0xaa,因为以上宏定义是定义的地址,则寄存器操作为P0_DATA_REG=0xaa;
如果要读取P0的状态值,则通过读取P0_DATA_REG寄存器,P0_STATUS = P0_DATA_REG,若要读取某一位的状态值,则通过与操作之后返回逻辑值即可。
作为输出时P0_DATA_REG适合对整体P0口操作,而对于某一位进行操作则需要经过一些逻辑操作保持其它位的值不变,不是很方便。而P0_SET_DATA_REG和P0_RESET_DATA_REG这两个寄存器对位操作就十分方便。对某一位置’0’或置’1’只需对应位赋1,其它位赋0即可,因为该寄存器忽视写0操作。若使P00 = 1,P01 = 0则P0_SET_DATA_REG =0x01; P0_RESET _DATA_REG=0x02;
P0[x]_MODE_REG是P0口某一位的操作模式的设置寄存器,例如配置P00为输入口,不上拉电阻,P01为I2C_SDA,P02为输出口,则
P00_ MODE _DATA_REG=0x00;
P01_ MODE _DATA_REG=0x0a;
P02_ MODE _DATA_REG=0x30;
第三节 GPIO实验
实验需要使用的模块有:手机开发板底板,Jlink调试工具,杜邦线、3.7V锂电池或Mocro
USB
线。
使用JLINK通过杜邦线连接手机
蓝牙
位于手机主控底板,连接方式如下:
(1)JLINK一端只需要使用杜邦线连接JLINK的SWC、SWD、GND三个引脚,如下图所示:
图7
(2)手机蓝牙一端需要使用杜邦线连接上方右侧的J3三个引脚,与JLINK的连接引脚一一对应,分别为SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下图所示:
图8
将JLINK插上电脑的USB接口,连接好之后给手机主控底板供电,详细的介绍可以参考《如何上电》教程,路径为:..\WT_Mobile\0.从这里开始\0.开机测试。
打开GPIO实验的
Keil
工程blinky.uvproj,位于目录:
...\WT_Mobile\1.初级教程\DA14580\1.GPIO实验\projects\target_apps\peripheral_examples\blinky\Keil_5。
图9
打开工程文件之后,编译,点击DEBUG,然后点击全速运行,则可以看到开发板正面的蓝色LED灯开始闪烁,如下图所示:
图10
文件下载请点击:
GPIO实验教程.pdf
(710.42 KB)
2022-8-12 14:42 上传
点击文件名下载附件
相关文章
•
Arm推出第三代边缘AI NPU Ethos-U85,性能提升四倍
•
谷歌推出Arm架构AI芯片Axion
•
哪种嵌入式处理器架构将引领未来十年的发展?
•
英特尔Arm签署新兴企业支持计划备忘录,助力创企Intel 18A制程芯片开发
•
Arm推出汽车增强处理器和虚拟平台 缩短人工智能汽车开发周期
•
微软推出 Arm 咨询服务:帮开发者构建、优化 WoA 应用
•
Arm扩展IC设计生态系统 新增瑞昱、联咏、三星等9家公司
•
英特尔进军Arm芯片领域,并追赶台积电提高代工市场份额
•
Arm 更新 Neoverse 产品路线图,实现基于 Arm 平台的人工智能基础设施
•
三星宣布与Arm合作,以GAA代工技术优化下一代Cortex-X CPU内核
回复
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
关于我们
-
服务条款
-
使用指南
-
站点地图
-
友情链接
-
联系我们
电子工程网
© 版权所有
京ICP备16069177号
| 京公网安备11010502021702
快速回复
返回顶部
返回列表