CC2541 IIC
来源:互联网 发布:积分系统数据库设计 编辑:程序博客网 时间:2024/06/03 03:49
现在很多人做手环,用加速剂最常见的就是MPU6050,MPU6050是IIC接口的。而CC2541 HAL没有提供IIC驱动,下面这个模拟的仅供参考。
#include <ioCC2540.h>#define uchar unsigned char #define uint unsigned int#define SCL P1_5 //定义模拟IIC的时钟线#define SDA P1_6 //定义模拟IIC的数据线void IIC_Init(void)//IIC初始化{ P1DIR |= 0x60; //P1.5、P1.6定义为输出 SDA = 1; delay_1ms(); SCL = 1; delay_1ms();}void Signal_Start(void)//IIC起始信号{ P1DIR |= 0x60; //P1.5、P1.6定义为输出 SDA = 1; delay_1ms(); SCL = 1; delay_1ms(); SDA = 0; delay_1ms(); }void Signal_Stop(void)//IIC停止信号{ P1DIR |= 0x60; //P1.5、P1.6定义为输出 SDA = 0; delay_1ms(); SCL = 1; delay_1ms(); SDA = 1; delay_1ms(); }void Respons(void)//答应信号{ uint i = 0; P1DIR |= 0x20; //P1.5定义为输出 P1DIR &= ~0x40; //P1.6定义为输入 SCL = 1; delay_1ms(); SCL = 0; delay_1ms(); if(i>=300) { delay_1ms(); }}void Write_Byte(uchar wdata){ uchar i,mdata; P1DIR |= 0x60; //P1.5、P1.6定义为输出 mdata = wdata; for(i=0;i<8;i++) { SCL = 0; delay_1ms(); if(mdata & 0x80) { SDA = 1; } else { SDA = 0; } delay_1ms(); SCL = 1; delay_1ms(); mdata <<= 1; } SCL = 0; delay_1ms(); SCL = 1; delay_1ms();}uchar Read_Byte(){ uchar i,rdata = 0; P1DIR |= 0x20; //P1.5定义为输出 P1DIR &= ~0x40; //P1.6定义为输入 SCL = 0; delay_1ms(); SCL = 1; for(i=0;i<8;i++) { SCL = 1; delay_1ms(); rdata = (rdata<<1)|SDA; SCL = 0; delay_1ms(); } return rdata;}void Write_Add(uchar add,uchar wdata,uchar comd){ Signal_Start(); //产生一个起始信号 Write_Byte(comd); Respons(); //等待答应 Write_Byte(add); Respons(); //等待答应 Write_Byte(wdata); Respons(); //等待答应 Signal_Stop(); //产生一个终止信号}uchar Read_Add(uchar add,uchar comd){ uchar tdata; Signal_Start(); //产生一个起始信号 Write_Byte(comd); Respons(); //等待答应 Write_Byte(add); Respons(); //等待答应 Signal_Start(); //再产生一个起始信号 Write_Byte(comd|0x01); Respons(); //等待答应 tdata = Read_Byte(); Signal_Stop(); //产生一个终止信号 return tdata; }void delay_1ms(void) // 延时1ms{ uchar a,c; for(c=4;c>0;c--) { //for(b=142;b>0;b--) { for(a=2;a>0;a--) { } } }}
阅读全文
0 0
- CC2541 IIC
- 【BLE】CC2541之硬件IIC(TMP102温度传感器)
- 蓝牙BLE基础:CC2541通信系列之模拟IIC协议
- CC2541
- IIC
- IIC
- IIC
- IIC
- IIC
- IIC
- iic
- IIC
- IIC
- IIC
- IIC
- iic
- IIC
- IIC
- ROS学习笔记-2: 编写服务端与客户端
- Java Web开发实战经典pdf
- Repairing a Road NBUT
- stm32如何获取自己的ID号
- Vue2开发的读书WebAPP
- CC2541 IIC
- 1.12Android 学习+进度之十二-聊天UI升级
- unity多语言功能
- Git学习笔记(二)--团队协作
- Android Wi-Fi Firmware(wcnss)修改方法(以QCOM为平台)
- 洛谷 P2279 [HNOI2003]消防局的设立
- Android-内存泄漏巧妙解决
- Curl 相关参数用法
- [E10]展BOM