CSR1010 sdk蓝牙
转:http://blog.csdn.net/lorain_lynies/article/details/52038640CSR1010 I/O开发须知:
关于I/O操作的函数库被定义在头文件<pio.h>中,查阅函数库我们需要用到一下几个函数:
1、设置引脚模式,我们需要将其设为user模式。
- void PioSetModes (uint32 mask, pio_mode mode)
2、设置方向,分为输入和输出,这里我们需要将button引脚设置为输入,led引脚设置为输出。
- void PioSetDir (uint16 pio, bool output)
3、设置电流相关,对于led引脚需要设置为允许大电流模式,button引脚设置为弱电流模式。
- void PioSetPullModes (uint32 mask, pio_pull_mode mode)
4、设置I/O产生相关事件,此处使用sys_event_pio_changed事件。
- void PioSetEventMask (uint32 mask, pio_event_mode mode)
每次产生事件都会调用下面的系统函数来对事件进行响应,其具体操作由开发者编写。
- void AppProcessSystemEvent(sys_event_id id, void *data)
5、使用CSR uEnergy SDK进行开发时,没有main()函数,代码先执行void AppPowerOnReset(void),然后执行void AppInit(sleep_state last_sleep_state)进行初始化工作,之后由系统事件触发执行void AppProcessSystemEvent(sys_event_id id, void *data)和bool AppProcessLmEvent(lm_event_code event_code, LM_EVENT_T *event_data)。
示例代码如下:
- #include <main.h>
- #include <pio.h>
- #include <ls_app_if.h>
- #define PIO_BUTTON 11
- #define PIO_LED0 10
- #define PIO_LED1 4
- #define PIO_DIR_OUTPUT TRUE
- #define PIO_DIR_INPUT FALSE
- void AppPowerOnReset(void)
- {
- }
- void AppInit(sleep_state last_sleep_state)
- {
- PioSetModes((1UL << PIO_LED0) | (1UL << PIO_LED1), pio_mode_user);
- PioSetDir(PIO_LED0, PIO_DIR_OUTPUT);
- PioSetDir(PIO_LED1, PIO_DIR_OUTPUT);
- PioSetPullModes((1UL << PIO_LED0) | (1UL << PIO_LED1), pio_mode_strong_pull_up);
- PioSetMode(PIO_BUTTON, pio_mode_user);
- PioSetDir(PIO_BUTTON, PIO_DIR_INPUT);
- PioSetPullModes((1UL << PIO_BUTTON), pio_mode_weak_pull_up);
- PioSetEventMask((1UL << PIO_BUTTON), pio_event_mode_both);
- }
- void AppProcessSystemEvent(sys_event_id id, void *data)
- {
- if (id == sys_event_pio_changed)
- {
- const pio_changed_data *pPioData = (const pio_changed_data *)data;
- if (pPioData->pio_cause & (1UL << PIO_BUTTON) )
- {
- if (pPioData->pio_state & (1UL << PIO_BUTTON))
- {
- PioSets((1UL << PIO_LED0) | (1UL << PIO_LED1), 0xffffUL);
- }
- else
- {
- PioSets((1UL << PIO_LED0) | (1UL << PIO_LED1), 0UL);
- }
- }
- }
- }
- bool AppProcessLmEvent(lm_event_code event_code, LM_EVENT_T *event_data)
- {
- return TRUE;
- }

CSR1010 sdk蓝牙的更多相关文章
- Android 开发日常积累
Android 集合 Android 开源项目分类汇总 扔物线的 HenCoder 高级 Android 教程 hencoder HenCoder:给高级 Android 工程师的进阶手册 Andro ...
- 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)
实现的功能: l APP控制月球灯 l 本地月球灯控制 l APP控制"大白"颜色,实现各种颜色变身 l 门状态传感器状态APP显示 l 网络状态指示灯,连接服务器长亮, ...
- nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级
如何在nRF Connect SDK(NCS)中实现蓝牙空中升级?MCUboot和B0两个Bootloader有什么区别?MCUboot升级使用的image格式是怎么样的?什么是SMP协议?CBOR编 ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
- BluetoothChat用于蓝牙串口通信的修改方法
本人最近在研究嵌入式的串口通信,任务是要写一个手机端的遥控器用来遥控双轮平衡小车.界面只用了一个小时就写好了,重要的问题是如何与板子所带的SPP-CA蓝牙模块进行通信. SPP-CA模块自带代码,在这 ...
- [nRF51822] 14、浅谈蓝牙低功耗(BLE)的几种常见的应用场景及架构(科普类干货)
蓝牙在短距离无线通信领域占据举足轻重的地位—— 从手机.平板.PC到车载设备, 到耳机.游戏手柄.音响.电视, 再到手环.电子秤.智能医疗器械(血糖仪.数字血压计.血气计.数字脉搏/心率监视器.数字体 ...
- iOS--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook等系统服务开发汇总
iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: ...
- android蓝牙打印机
您还未登录!|登录|注册|帮助 首页 业界 移动 云计算 研发 论坛 博客 下载 更多 reality_jie的专栏 编程的过程是一种微妙的享受 目录视图 摘要视图 订阅 CSDN2013 ...
- [异常解决] 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...
一.问题: 之前写的一款安卓4.4的应用程序,用来连接蓝牙BLE,而现在拿出来用新的AS编译(此时SDK为6.0,手机也是6.0)应用程序并不能搜索到蓝牙,查看log总是报权限错误: Need ACC ...
随机推荐
- MAC下一些常用的命令行
统计了一下工作中一些会常用到的简单命令,加强记忆 ls 查看当前终端目录下面的文件 ls -a "ls -a"会出现一些带.xxxx的文 ...
- tinyint(4),tinyint(80)有什么区别
tinyint格式: TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4 Tinyint占用1字节的存储空间,即8位(bit). 带符号的范围是-128到127.无符号的 ...
- SSH总结(二)
1.文件的操作,读写文件,解决乱码问题 读文件 InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(p ...
- 添加可点击的imagebottom,有个点击动画效果
android添加可点击的按钮,有个动画切换 ,首先定义一个 res/drawable中定义一个 btn_shutter_background.xml,其定义举例如下: <?xml versio ...
- Laravel5.1 响应
上篇笔记刚刚记录完请求 这节就来说说响应,一般来说啊 一个请求对应一个响应,用户都请求咱了 咱必须做一些逻辑后给人家反馈是不是,这就是响应. 1 基本的响应 我们前几篇笔记已经用过很多响应了,其中包括 ...
- http://localhost:8080请求用户名和密码。信息为:“XDB” 解决办法
windows查看端口占用情况 cmd下 netstat -ano 查看端口和对应的服务 为2520 Oracle的服务 源博客: http://blog.163.com/jxguo_05/blog/ ...
- 微信小程序开发遇见的问题之一
在开发的时候,因为要定位到当前的城市,而小程序提供的API只是能够获取当前的经纬度,所以我们需要通过接入百度地图的API.调接口的时候发现报错,说域名不合法,此时千万不要着急,只要你登录你的微信开发公 ...
- 简单的 ajax demo
2.最重要也是最核心的是要自己改下bootstrap-paginator.js源文件,如下: [javascript] view plain copy function oneferRepo ...
- python的文件处理学习笔记
python的文件处理函数是open() 以下主要是关于这个函数的一些学习笔记 1.文件处理离不开编码 要注意的是文件打开时的编码和文件保存时的编码的统一,这样才能保证你打开的文件不会存在乱码 总结: ...
- MySQL中因为unique key 非空唯一索引存在导致修改主键失败案例
研发在早期的设计中,由于设计方面的问题,导致在设计表结构的时候,有个表有非空唯一索引而没有主键 在InnoDB存储引擎中,如果没有主键的情况下,有非空唯一索引的话,非空唯一索引即为主键. 那么这就会有 ...