锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【开发教程8】疯壳·ARM功能手机-GPIO实验教程

时间:2023-02-05 16:30:00 576kohm电阻

ARM功能手机
——疯壳·开发板系列
GPIO实验教程



图1

第一节LED硬件电路

板中有一个可控LED,接在DA14580的P24引脚,LED串联1K的限流电阻,如下图所示:


图2


第二节 GPIO寄存器

2.1 GPIO引脚介绍
DA14580的I/O软件配置可分为四组引脚功能Port0、Port1、Port2、Port3,其中Port2只在QFN40与QFN在48包装芯片中,Port3只在QFN在48包装芯片中。
Port0有8个引脚,Port16个引脚(包括1)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 P设置数据寄存器


图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.寄存器配置
参照P应注意0寄存器的配置P14与P两种引脚模式的默认值为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;
如果要读取P读取0的状态值P0_DATA_REG寄存器,P0_STATUS = P0_DATA_REG,如果要读取某个位置的状态值,可以在操作后返回逻辑值。
作为输出时P0_DATA_REG适合对整体P0口操作,对于某个操作,需要一些逻辑操作来保持其他位置的值不变,不太方便。而P0_SET_DATA_REG和P0_RESET_DATA_REG这两个寄存器对位操作非常方便。由于寄存器忽略了写0操作,所以只需要对应的位赋1和其他位赋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)用杜邦线连接手机蓝牙一端上方右侧J三个引脚,和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
    
    
 

更多完整学习资料和对应开源套件,请登陆官网:“疯壳”

如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章