CSR1010 sdk蓝牙

转:http://blog.csdn.net/lorain_lynies/article/details/52038640CSR1010 I/O开发须知:
关于I/O操作的函数库被定义在头文件<pio.h>中,查阅函数库我们需要用到一下几个函数:
1、设置引脚模式,我们需要将其设为user模式。

[cpp] view plain copy

  1. void  PioSetModes (uint32 mask, pio_mode mode)

2、设置方向,分为输入和输出,这里我们需要将button引脚设置为输入,led引脚设置为输出。

[cpp] view plain copy

  1. void  PioSetDir (uint16 pio, bool output)

3、设置电流相关,对于led引脚需要设置为允许大电流模式,button引脚设置为弱电流模式。

[cpp] view plain copy

  1. void  PioSetPullModes (uint32 mask, pio_pull_mode mode)

4、设置I/O产生相关事件,此处使用sys_event_pio_changed事件。

[cpp] view plain copy

  1. void  PioSetEventMask (uint32 mask, pio_event_mode mode)

每次产生事件都会调用下面的系统函数来对事件进行响应,其具体操作由开发者编写。

[cpp] view plain copy

  1. 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)。

示例代码如下:

[cpp] view plain copy

  1. #include <main.h>
  2. #include <pio.h>
  3. #include <ls_app_if.h>
  4. #define PIO_BUTTON      11
  5. #define PIO_LED0        10
  6. #define PIO_LED1        4
  7. #define PIO_DIR_OUTPUT  TRUE
  8. #define PIO_DIR_INPUT   FALSE
  9. void AppPowerOnReset(void)
  10. {
  11. }
  12. void AppInit(sleep_state last_sleep_state)
  13. {
  14. PioSetModes((1UL << PIO_LED0) | (1UL << PIO_LED1), pio_mode_user);
  15. PioSetDir(PIO_LED0, PIO_DIR_OUTPUT);
  16. PioSetDir(PIO_LED1, PIO_DIR_OUTPUT);
  17. PioSetPullModes((1UL << PIO_LED0) | (1UL << PIO_LED1), pio_mode_strong_pull_up);
  18. PioSetMode(PIO_BUTTON, pio_mode_user);
  19. PioSetDir(PIO_BUTTON, PIO_DIR_INPUT);
  20. PioSetPullModes((1UL << PIO_BUTTON), pio_mode_weak_pull_up);
  21. PioSetEventMask((1UL << PIO_BUTTON), pio_event_mode_both);
  22. }
  23. void AppProcessSystemEvent(sys_event_id id, void *data)
  24. {
  25. if (id == sys_event_pio_changed)
  26. {
  27. const pio_changed_data *pPioData = (const pio_changed_data *)data;
  28. if (pPioData->pio_cause & (1UL << PIO_BUTTON) )
  29. {
  30. if (pPioData->pio_state & (1UL << PIO_BUTTON))
  31. {
  32. PioSets((1UL << PIO_LED0) | (1UL << PIO_LED1), 0xffffUL);
  33. }
  34. else
  35. {
  36. PioSets((1UL << PIO_LED0) | (1UL << PIO_LED1), 0UL);
  37. }
  38. }
  39. }
  40. }
  41. bool AppProcessLmEvent(lm_event_code event_code, LM_EVENT_T *event_data)
  42. {
  43. return TRUE;
  44. }

时间: 2024-10-30 00:32:03

CSR1010 sdk蓝牙的相关文章

Android 开发中的日常积累

欢迎Star,Fork https://github.com/lizhangqu/CoreLink 里面记录了开发过程中有用的东西,欢迎补充,不定时更新. Android 性能优化 Android内存优化之OOM Android最佳性能实践(1):合理管理内存 Android最佳性能实践(2):分析内存的使用情况 Android最佳性能实践(3):高性能编码优化 Android最佳性能实践(4):布局优化技巧 Android 加固与反编译 Apktool dex2jar DecompileApk

Android低功耗蓝牙(蓝牙4.0)——BLE开发(上)

段时间,公司项目用到了手机APP和蓝牙设备的通讯开发,这里也正好对低功耗蓝牙(蓝牙4.0及以后标准)的开发,做一个总结. 蓝牙技术联盟在2010年6月30号公布了蓝牙4.0标准,4.0标准在蓝牙3.0+HS标准的基础上增加了对低功耗蓝牙(BLE)的支持.相比原有的普通蓝牙和高速蓝牙,BLE最大的特点就是低功耗,低延时,快速的搜索和连接速度,但数据传输速度相比传统蓝牙低.接下去将从BLE的概念以及代码两个方面介绍Android下的BLE. 先来说说基本概念: 1.BLE相关概念 1.1 GATT.

手把手教你做蓝牙聊天应用(一)-设计方案

前言 通过"计算器"和"视频播放器"我们已经能够开始开发一些比较像样的应用了. 今天,我们将开始制作一个"蓝牙聊天"应用.这个应用其实很简单,没有炫酷的界面,就是一对一.通过蓝牙连接两台设备,让两个人互相发送信息. 可别觉得它太无聊.没有什么实用性,其实我们正是想通过它让你开始接触网络编程(蓝牙和wifi都是无线连接技术,它们的程序设计方法和思路非常的相似). 另外,学会了使用蓝牙,就为大家打开了技术开发的另一扇大门-物联网,现在很多物联网硬件都

02. Android SDK 特征

SDK (software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 因此 Android SDK 就是Android专属的软件开发工具包. Android SDK特征 访问硬件(包括摄像头.GPS和传感器) Android包含了用来设计设备硬件开发的API开发.这些API库可以保证不必为不同的设备创建软件的特殊实现,因此,创建的Android应用程序 就可以像预料中的那样运行在所有支持And

Unity3d使用蓝牙(bluetooth)开发IOS点对点网络游戏

著作权声明:本文由http://www.cnblogs.com/icker 原创,欢迎转载分享.转载时请保留该声明和作者博客链接,谢谢! 最近使用Unity3d制作的IOS游戏需要加入联网对战功能功能,因此使用ObjC语言利用IOS SDK的GameKit.framework的Peer-to-peer Connectivity实现了网络连接,在此分享. 啥话都不说,先上代码.点我下载工程文件, 类NetWorkP2P,继承自NSObject.提供GKSessionDelegate和GKPeerP

[nRF51822] 14、浅谈蓝牙低功耗(BLE)的几种常见的应用场景及架构(科普类干货)

蓝牙在短距离无线通信领域占据举足轻重的地位—— 从手机.平板.PC到车载设备, 到耳机.游戏手柄.音响.电视, 再到手环.电子秤.智能医疗器械(血糖仪.数字血压计.血气计.数字脉搏/心率监视器.数字体温计.耳温枪.皮肤水分计等), 再到智能家居等领域均占有一席之地. 而蓝牙低功耗(BLE)是在蓝牙4.0协议上修改以适用低功耗应用场景的一种蓝牙协议. 随着上一股智能消费类电子大潮的到来,BLE的各种应用也像雨后春笋般在市场上铺开. 如果想 紧跟蓝牙协议的最新动态 ,可以在https://www.b

Android蓝牙自动配对Demo,亲测好使!!!

蓝牙自动配对,即搜索到其它蓝牙设备之后直接进行配对,不需要弹出配对确认框或者密钥输入框. 转载请注明出处http://blog.csdn.net/qq_25827845/article/details/52400782 经过最近一段时间得研究,针对网上给出的案例.总结了一个亲测好使的Demo. 说明如下: 1.本Demo用来连接蓝牙设备HC-05,如果你要连接其他蓝牙设备,注意修改相关名字以及修改设备初试pin值. 2.将Demo安装在Android手机上,点击按钮,可以实现与目标蓝牙设备的自动

蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例

本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的Framework包括Android Framework.Linux QT.Windows MFC.应用框架抽象并封装实现了一般应用场景的需求,完成应用开发的80%,剩下的20%则以回调(callback)和接口的方式供应用开发人员调用以完成具体的需求. 一般Framework完成的工作包括:任务分

Android通过JNI实现与C语言的串口通讯操作蓝牙硬件模块

一直想写一份技术文档,但因为自感能力有限而无从下笔,近期做了个关于Android平台下实现与C语言的通讯来操作蓝牙模块的项目,中间碰到了很多问题,也在网上查了很多资料,在完毕主要功能后.也有一些人在网上问我一些问题.这里写下这篇文档算是一个阶段性的总结. 假设反响好.兴许将会发上Android Stub与新版Android HAL的学习文档. 因为蓝牙模块是串口通讯机制.使用C语言来訪问,而Android的应用层採用Java.无法直接操作硬件.故使用JNI的技术实现主要功能.Android的JN