历史上的今天
今天是:2024年09月04日(星期三)
2019年09月04日 | cc2530裸机编程系列笔记4--GPIO口的使用
2019-09-04 来源:eefocus
CC2530的GPIO口的使用与普通51单片机略有不同,主要体现在IO口在使用之前需要进行功能及方向的设定。功能的设置指的是把IO口设置为普通IO口还是当作特殊功能来使用。方向的设定指的是将IO口设为输入或输出。进行这两个设置使用的寄存器分别为PxSEL和PxDIR。
CC2530 的SFR 中有三类寄存器可用于配置这些IO 口:
①PxSEL(x 为0/1/2):P0/P1/P2 口功能选择
0:通用数字IO,1:外设IO,缺省默认为0
②PxDIR(x 为0/1/2):P0/P1/P2 口方向
0:输入,1:输出,缺省默认为0
③PxINP(x 为0/1):P0/P1 口输入模式
0:上拉/下拉,1:三态,缺省默认为0
在使用IO 口时需配置,若缺省,则取系统默认值。设置代码如下:
P1SEL = 0x00; //设置P1 为普通 I/O 口
P1DIR |= 0x0F; //设置P1_0、P1_1 为输出
对开发板上的LED进行闪灯的操作,具体程序为:
//引入头文件
#include //定义LED 引脚 #define led1 P1_0 //定义LED1 为P1_0 口控制 #define led2 P1_1 //定义LED2 为P1_1 口控制 void Delay(unsigned char n) { unsigned char i; unsigned int j; for(i = 0; i < n; i++) for(j = 1; j; j++) ; } void main(void) { P1SEL = 0x00; //设置P1 为普通 I/O 口 P1DIR |= 0x03; //设置P1_1,P1_1 为输出 led1 = 1; //初始化,4 个led 灯全熄 led2 = 1; while(1) //开始循环 { led1 = 0; //led1 闪烁 Delay(10); led1 = 1; Delay(10); led2 = 0; //led2 闪烁 Delay(10); led2 = 1; Delay(10); } }
史海拾趣
|
嵌入式系统开发,为什么选择Linux? 在过去的几年中,嵌入式系统的开发发生了很大的变化。以前嵌入式设备往往是一个孤立的、资源有限的系统,它们追求的是在有限的价格上满足一定的功能性要求。通常它们采用那些功能并不强大的CPU,这也是开发 ...… 查看全部问答> |
|
定时/计数器都有定时或对外部事件计数的功能。通常,定时/计数器归纳起来一般有3种类型: 硬件计数器 可在简单软件控制下计数,特点是成本低,使用方便,但是专用性强,使用不广泛。 软件定时/计数器 特点是几乎没有硬件费用,但他占用cpu的 ...… 查看全部问答> |
|
能不能用VC,根据无线网SSID和自己填写的密码,迅速验证密码是否正确 英特尔的无线网卡,能不能用VC做一个程序,根据无线网SSID(网名)和自己填写的密码,迅速验证密码是否正确呀? 初步设计的界面如下 无线网卡的管理工具也可以验证,但是太慢了,而且每次只能验证最多4个密码。不好 不知这个问题是不是应该在 ...… 查看全部问答> |
|
本月11日,中国嵌入式系统产业联盟“百家e坛”嵌入式技术主题论坛第三期如期召 开,延续前两期活动的火爆场面,本期活动同样吸引了众多嵌入式技术爱好者的热情参与。 本期活动可谓是名家云集,三位主讲嘉宾都是嵌入式业界知名的技术专家,因此吸引 ...… 查看全部问答> |
|
我们的ODM产品需要增加一个短信提示功能。客户的需求是,采取C/S架构的通信。Client端是若干个GPRS终端,Server端是一台拥有公网IP的PC。要求c、s能够双向通信。 在和客户的构图中,目前提出有3种方案: &n ...… 查看全部问答> |
|
大四了,面对工作我发现自己掌握的单片机几乎都不能应用于实践只会使用51和AVRPIC的只是简单了解过大部分公司至少要求是430了动辄就是ARM之类的还剩下不长也不短的一段时间恰好有这么一个机会加油,再学一款单片机,为未来做个准备… 查看全部问答> |




