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 ...
随机推荐
- Eclipse 浏览(Navigate)菜单
浏览 Eclipse 工作空间 浏览(Navigate)菜单提供了多个菜单可以让你快速定位到指定资源. 上图中 Open Type, Open Type in Hierarchy 和 Open Res ...
- Python Socket 网络编程 (服务器端编程)
服务器端主要做以下工作: 打开 socket 绑定到特定的地址以及端口上 监听连接 建立连接 接收/发送数据 上面已经介绍了如何创建 socket 了,下面一步是绑定. 绑定 socket 函数 bi ...
- 关闭数据库时SHUTDOWN: waiting for active calls to complete.处理
有时候在关闭数据库时,发出shutdown immediate;命令后一直未关闭.查看ALERT日志.在等待一段时间后日志中有提示: SHUTDOWN: waiting for active call ...
- python升级后pip 不可用 卸载pip
python版本由2.6升级到2.7之后,用pip提示报错 找了一下原因,网上的版本很多.弄来弄去比较麻烦 来点简单粗暴的 1.卸载pip yum remove python-pip 2.下载 cur ...
- WPF-数据转换
有时我们展现的数据,需要进行转换,比如如果一个学生的成绩过了60,我们显示一个Pass的图片. XAML: <Window x:Class="DeepXAML.MainWindow&q ...
- 发现保存GIF格式后相素发生变化咋办
数学公式编辑器MathType主要的作用就是编辑公式用的,一些用户朋友编辑完公式希望把公式保存为“高分辨率”的GIF格式,但是在图片查看器中进行浏览查看时发现GIF的分辨率发生了变化,对于这种情况该如 ...
- Atitit.软件仪表盘(4)--db数据库子系统-监測
Atitit.软件仪表盘(4)--db数据库子系统-监測 连接数::: 死锁表列表:死锁基础列表(近期几条记录,时间,sql等) 3.对server进行监控.获取CUP.I/O使用情况 4.对数据 ...
- [HAOI2012] 容易题[母函数]
794. [HAOI2012] 容易题 ★★☆ 输入文件:easy.in 输出文件:easy.out 简单对比时间限制:1 s 内存限制:128 MB 秒 输入:easy.in 输出: ...
- Xamarin.Forms学习之初
微软的Build 2016结束的有段时间了,对于一个简单的小屌丝程序员--我来说,关注最大的无疑是Xamarin的免费(开源什么的让大神们上吧),内心激动啊.大会结束的周末我就迫不及待的安装了,然后. ...
- Spring 缓存注解@Cacheable 在缓存时候 ,出现了第一次进入调用 方法 ,第二次不调用的异常
代码: @Override @Cacheable(value = CACHE_NAME, key = "'CartItemkey_'+#uId") public List<S ...