TI CC2541的LED控制
现在终于进入到蓝牙SPI的环节了, 下面还要研究I2C, 所以第一步, 先点灯, 就是GPIO控制吧.
参考一下LEd的初始化:
void HalLedInit (void)
{
#if (HAL_LED == TRUE)
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF); // Initialize all LEDs to OFF.
// Set LED GPIOs to outputs.
LED1_DDR |= LED1_BV;
#if (!defined HAL_PA_LNA && !defined HAL_PA_LNA_CC2590)
LED2_DDR |= LED2_BV;
#if (!defined CC2540_MINIDK && !defined HAL_BOARD_CC2540USB)
LED3_DDR |= LED3_BV;
#endif
#endif
#if defined BLINK_LEDS
HalLedStatusControl.sleepActive = FALSE; // Initialize sleepActive to FALSE.
#endif
#endif
}
其中重要的两句是:
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF); // Initialize all LEDs to OFF.
// Set LED GPIOs to outputs.
LED1_DDR |= LED1_BV;
先看看怎么把GPIO脚P1_0定义为输出
/* 1 - Green */
#define LED1_BV BV(0)
#define LED1_SBIT P1_0
#define LED1_DDR P1DIR
#define LED1_POLARITY ACTIVE_HIGH
/* Port 1 */
SFRBIT( P1 , 0x90, P1_7, P1_6, P1_5, P1_4, P1_3, P1_2, P1_1, P1_0 )
SFR( RFIRQF1 , 0x91 ) /* RF Interrupt Flags MSB */
SFR( DPS , 0x92 ) /* Data Pointer Select */
SFR( MPAGE , 0x93 ) /* Memory Page Select */
SFR( T2CTRL , 0x94 ) /* Timer2 Control Register */
SFR( ST0 , 0x95 ) /* Sleep Timer 0 */
SFR( ST1 , 0x96 ) /* Sleep Timer 1 */
SFR( ST2 , 0x97 ) /* Sleep Timer 2 */
#define LED1_DDR P1DIR
SFR( P1DIR , 0xFE ) /* Port 1 Direction */
所以, LED1_DDR |= LED1_BV; //即: 将SFR 0XFE的值, 或一个00000000.
在看看
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);
其实重点是:
led = HAL_LED_1;
leds &= HAL_LED_ALL;
sts = HalLedStatusControl.HalLedControlTable;
while (leds)
{
if (leds & led)
{
if (mode != HAL_LED_MODE_TOGGLE)
{
sts->mode = mode; /* ON or OFF */
}
else
{
sts->mode ^= HAL_LED_MODE_ON; /* Toggle */
}
HalLedOnOff (led, sts->mode);
leds ^= led;
}
led <<= 1;
sts++;
}
一开始其实是不是不用写得好像它那么高深莫测, 简单实现以下, 知道如何输出0, 1, 就是第一步的目标. 对吧.
ok, let's rock!
TI CC2541的LED控制的更多相关文章
- TI CC2541的红外控制
整整一个礼拜, 整了...大约40个小时吧, 最少.. 下面是结果, 只能做一个delay延时.: unsigned char Time;unsigned char IrValue[6];#pragm ...
- 蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例
本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的 ...
- linux输入子系统(input subsystem)之按键输入和LED控制
实验现象:在控制台打印按键值,并且通过按键控制相应的LED亮灭. 1.代码 input_subsys_drv.c #include <linux/module.h> #include &l ...
- IAR 9+ 编译 TI CC2541 出现 Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition.
IAR 9+ 编译 TI CC2541 出现 Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. Segm ...
- BeagleBone Black板第四课:简单LED控制实验
BBB板第四课:简单LED控制实验 学习BBB板的终于目的是想像单片机一样做控制,但控制思路全然不一样(Linux下控制硬件设备实质就是对相关设备虚拟文件的读写).研究了几天头都大了还是没有进展,网上 ...
- FPGA —— LED控制
第一次接触新东西的时候,难免会磕磕碰碰,不过遇到问题不要着急,慢慢来.原因总归是我们自己引起的,一步步找到问题的根源,然后彻底解决它,避免下次再犯. 在开始之前先分享一下工具:(Quartus II ...
- 电赛菜鸟营培训(一)——STM32F103CB之LED控制
一.STM32F103C8 引脚分布 二.LED的共阴.共阳接法 这里应该是七段数码管的接法. 限流电阻选择为470,在Multism中仿真,也需要接入,否则会出现闪烁情况.或者直接更改属性. 三.消 ...
- 树莓派linux驱动学习之LED控制
前面我们编写了hello world的程序,接下来继续研究GPIO功能,通过GPIO来控制LED的亮灭,这在单片机中应该算是十分简单的一个程序了,但是在Linux系统中控制GPIO没有那么简单,难点就 ...
- 基于Qt Gui的Led控制显示程序
基于arm + linux的嵌入式软件开发,基本上的内容主要是:u-boot的移植,kernel的裁剪和相关驱动程序的设计,root-fs的制作,应用程序的设计,其中,应用程序主要包含两方面的内容:G ...
随机推荐
- 修改seacherbar 取消按钮属性
继承UISearchBar. 重载setShowCancelButton. [super xxx]; ... for (UIView *subview in self.subview) { if ...
- iOS:特殊符号大全
特殊符号大全分享给大家,直接复制粘贴就可以使用了! ░ ▒ ▬ ♦ ◊ ◦ ♠ ♣ ▣ ۰•● ❤ ●•۰ ► ◄ ▧ ▨ ♨ ◐ ◑ ↔ ↕ ▪ ▫ ☼ ♦ ♧♡♂♀♠♣♥❤☜☞☎☏⊙◎ ☺☻☼▧▨ ...
- jenkins邮件模板
步骤 1.在jenkins主目录中新建一个模板文件夹 命名为:email-templates 3.把模板代码放入到模板文件夹 with_results.groovy 4.设置邮件发送模板配置 5.配 ...
- windows下制作PHP扩展
一.编译PHP 转自:http://demon.tw/software/compile-php-on-windows.html 编译PHP扩展必需的一些头文件需要从php源码中获取,其中有一些配置性的 ...
- ios中常用数据类型相互转换
ios中常用数据类型相互转换 //1. NSMutableArray和NSArray互转 // NSArray转为NSMutableArray NSMutableArray *arrM = [arr ...
- iOS 开发知识小集(1)
iOS 开发知识小集(1) 2015-05-15 iOS大全 (点击上方蓝字,快速关注我们) 一直想做这样一个小册子,来记录自己平时开发.阅读博客.看书.代码分析和与人交流中遇到的各种问题.之前有过 ...
- JQuery 操作HTML元素 示例
http://www.w3school.com.cn/jquery/jquery_dom_add.asp http://www.w3school.com.cn/jquery/jquery_dom_re ...
- Android --Android Stuido混淆签名打包
参考博客:Android studio 使用心得(五)—代码混淆和破解apk 参考博客:Android studio 使用心得(四)---android studio 多渠道打包 参考博客:Andro ...
- 知识准备-JOIN/EXISTS
10:40 2013-08-29 JOIN ON...AND A left join B on A.col1=B.col1 and A.col2=xx A left join B on A.col1= ...
- block数据类型
// // main.m // 04-block数据类型 // // Created by apple on 14-3-18. // Copyright (c) 2014年 apple. Al ...