CC2540/CC2541的基本操作
CC2540/CC2541的基本操作
1)操作LED
//初始化
P0SEL &= ~0x01;//设置为普通IO口
P0DIR |= 0x01;//设置成输出模式
//LED控制
P0_0 = 1;//输出高电平,LED亮
P0_0 = 0;//低电平,LED灭
2)按键
//初始化
P0SEL &= ~0x01;//设置为普通IO口
P0DIR &= ~0x01;//设为输入模式
P0INP &= ~0x01;//打开上拉电阻,上拉输入
//取值
/****************************************************************************
* 名 称: KeyScan()
* 功 能: 读取按键状态
* 入口参数: 无
* 出口参数: 0为抬起 1为按键按下
****************************************************************************/
uchar KeyScan(void){if (P0_0 == 0){DelayMS(10); //延时10MS去抖if (P0_0 == 0){while(!P0_0); //松手检测return 1; //有按键按下}}return 0; //无按键按下
}
3)中断方式按键
//初始化
P0IEN |= 0x1; //P0IEN: 端口0,位7至位0中断使能。0:中断禁止;1:中断使能
PICTL |= 0x1; //端口0,引脚7至0输入模式下的中断配置,该位为端口0的7-0脚的输入选择中断请求条件。0:输入的上升沿引起中断;1:输入的下降沿引起中断
P0IEN |= 0x1; //端口0,位7至位0中断使能。0:中断禁止;1:中断使能;
P0IFG = 0x00; //端口0,位7至位0输入中断状态标志。当某引脚上有中断请求未决信号时,其相应标志为1。
EA = 1; //打开总中断
//按键检测的中断处理函数,不需要主动调用
/****************************************************************************
* 名 称: P0_ISR(void) 中断处理函数
* 描 述: #pragma vector = 中断向量,紧接着是中断处理程序
****************************************************************************/
#pragma vector = P0INT_VECTOR
__interrupt void P0_ISR(void){DelayMS(10); //延时去抖LED1 = ~LED1; //改变LED1状态P0IFG = 0; //清中断标志 P0IF = 0; //清中断标志
}
4)ADC采样
//初始化
HalAdcInit();
HalAdcSetReference(HAL_ADC_REF_125V);//设置参考电压为内部1.25V
uint32 r=HalAdcRead(HAL_ADC_CHN_VDD3, HAL_ADC_RESOLUTION_10);//取得1/3电源值的ADC采样
5)看门狗
//初始化看门狗
void Init_Watchdog(void){WDCTL = 0x00; //打开IDLE才能设置看门狗WDCTL |= 0x08; //定时器间隔选择,间隔一秒
}//喂狗, 需要不断喂狗, 因为BUG或其他原因长时间不喂狗, 系统就会复位
void FeetDog(void){WDCTL = 0xa0; //清除定时器。当0xA跟随0x5写到这些位,定时器被清除WDCTL = 0x50;
}
6)GPIO省电
一个接有负载的IO口,在不需要负载时如何省电呢(比如LED不需要亮时),答案是3态输入,上拉下拉输入都可能有消耗;
P0SEL &= ~0x01;//设置为普通IO口
P0DIR &= ~0x01;//设置为输入模式
P0INP |= 0x01;//3态输入模式
转载于:https://my.oschina.net/u/184090/blog/333164
CC2540/CC2541的基本操作相关推荐
- CC2540/CC2541/CC254x之OSAL操作系统抽象层
测试环境 协议栈版本:BLE-CC254x-1.4.0 开发环境IAR版本:IAR 8.20 硬件设备:CC2540/CC2541开发板 示例测试Demo工程:simpleBLEPeripheral工 ...
- 蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现
蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现 虽然蓝牙4.0 BLE芯片CC2540 是单芯片(即用户可以对它进行芯片级代码编写), 是8051增强型主控, 带蓝牙4. ...
- cc2540 cc2541 开发板资料更新日志
经过多次PCB打样和全面调试.已经完毕了cc2540 cc2541的开发板的批量贴片.硬件告一段落, 接下来是全面完好软件方面的工作.眼下已经针对没有开发经验的用户编写完毕0基础基础实验代码和教程.接 ...
- CC2540/CC2541进入PM3深度休眠的条件及其休眠机制的剖析
学习BLE已有一段时间,从开始时的一片空白到现在的略有领悟.下面来讲讲鄙人学习BLE中的一些领悟. 用BLE的人都知道,BLE的最大亮点是低功耗,实现低功耗的主要方式就是CC2540/CC2541的休 ...
- CC2540 CC2541 蓝牙4.0BLE开发板实现 空中飞鼠、体感游戏手柄【多图】
蓝牙4.0BLE开发板实现空中飞鼠.体感游戏手柄 近年来开始流行空中飞鼠与体感游戏手柄,正好我们的开发板上设计有插入mpu6050六轴传感器的适配接口,我们中秋节期间兴趣使然,实现了这么一个方案. ...
- CC2540\CC2541 资料整理
整体 1.TI的蓝牙平台支持2种协议栈/应用配置:单一设备配置.网络处理器配置 2.协议栈最顶层2个通用profile: GAP 通用访问配置文件层 Generic Access Profile GA ...
- CC254x/CC2540/CC2541库函数速查
hci.h //分配内存,应用程序不应该调用这个函数. void *HCI_bm_alloc( uint16 size );//检查连接时间参数和连接时间参数的组合是否有效 uint8 HCI_Val ...
- CC2540开发入门
1 CC2540简介 CC2540是单模BLE芯片,是蓝牙RF和8051的组合,自带FLASH和8kB RAM.适合数据少频率低的通讯,如蓝牙键盘.传感器测量.遥控器.防丢器等应用. 2 开发需求 l ...
- CC2540蓝牙协议栈开发简介
本系列教程将结合TI推出的CC254x SoC 系列,讲解从环境的搭建到蓝牙4.0协议栈的开发来深入学习蓝牙4.0的开发过程.教程共分为六部分,本文为第三部分: 第三部分知识点: 第十一节 串口通信 ...
最新文章
- Java之static
- IE7一样可以轻易重装
- python制作自动回复脚本_python itchat实现微信自动回复的示例代码
- 服装零售行业洞察报告
- 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...
- 什么是Makefile.am和Makefile.in?
- Django之Form插件
- 细说Linux链接文件类型
- 华为交换机接口允许vlan通过_VLAN工作原理之TRUNK:控制允许通过的VLAN(Allowed List)...
- 02 ZooKeeper分布式集群安装
- POJ 2449 Remmarguts' Date (SPFA + A星算法) - from lanshui_Yang
- AlphaGo 引发的中国象棋之路
- 外贸沟通中,老外最喜欢的聊天工具你了解?各国客户最常用的即时聊天APP整理及配套8个英语类工具推荐
- SQL注入(持续更新中)
- 前段UI框架 layui 和 amazeui 的对比
- pytorch-cpn可视化标注信息
- python信用评分卡建模(附代码)
- 将电脑输入法关闭只留我们经常用的输入法
- B. Wilbur and Array
- 2022-2028年中国商业地产物业管理行业发展模式分析及市场需求预测报告
热门文章
- python将英文字母排序_20191106-基于Python的对字母基数排序
- 蓝库云|如何利用零代码工具创建人力资源管理系统
- 脉冲能量|Committer 专访——李理:Apache Pulsar 项目“体验师”
- 面向对象学不会看不懂?一文详解面向对象知识点总结
- 2021年G3锅炉水处理考试总结及G3锅炉水处理复审考试
- yolov4.weights文件
- ABA问题的解决方法
- 池式结构:对象池(Object Pool)
- 「宝石风」一人无技术创业,金字塔顶端仍有蓝海机会
- 一点资讯拆VIE回国;拼多多做跨境海淘;复宏汉霖首款生物类似药获批