欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
zigbee cc2530裸機(jī)模擬IIC接口程序 實(shí)現(xiàn)VL53L0X激光測距
[打印本頁]
作者:
大只偉
時間:
2019-4-13 14:58
標(biāo)題:
zigbee cc2530裸機(jī)模擬IIC接口程序 實(shí)現(xiàn)VL53L0X激光測距
采用IAR環(huán)境,實(shí)現(xiàn)普通模塊測距,串口輸出數(shù)據(jù)。
代碼如下:
#include "VL53L0.h"
#include "myiic.h"
uint16_t bswap(u8 b[])
{
uint16_t val = ((b[0]<< 8) & b[1]);
return val;
}
uint16_t VL53L0X_decode_vcsel_period(short vcsel_period_reg)
{
uint16_t vcsel_period_pclks = (vcsel_period_reg + 1) <<1;
return vcsel_period_pclks;
}
uint16_t makeuint16(int lsb, int msb)
{
return ((msb & 0xFF) << 8) | (lsb & 0xFF);
}
//IIC連續(xù)寫
//addr:器件地址
//reg:寄存器地址
//len:寫入長度
//buf:數(shù)據(jù)區(qū)
//返回值:0,正常
// 其他,錯誤代碼
u8 VL53L0X_Write_Len(u8 addr,u8 reg,u8 len,u8 *buf)
{
u8 i;
IIC_Start();
IIC_Send_Byte((addr<<1)|0);//發(fā)送器件地址+寫命令
if(IIC_Wait_Ack()) //等待應(yīng)答
{
IIC_Stop();
return 1;
}
IIC_Send_Byte(reg); //寫寄存器地址
IIC_Wait_Ack(); //等待應(yīng)答
for(i=0;i<len;i++)
{
IIC_Send_Byte(buf[i]); //發(fā)送數(shù)據(jù)
if(IIC_Wait_Ack()) //等待ACK
{
IIC_Stop();
return 1;
}
}
IIC_Stop();
return 0;
}
//IIC連續(xù)讀
//addr:器件地址
//reg:要讀取的寄存器地址
//len:要讀取的長度
//buf:讀取到的數(shù)據(jù)存儲區(qū)
//返回值:0,正常
// 其他,錯誤代碼
u8 VL53L0X_Read_Len(u8 addr,u8 reg,u8 len,u8 *buf)
{
IIC_Start();
IIC_Send_Byte((addr<<1)|0);//發(fā)送器件地址+寫命令
if(IIC_Wait_Ack()) //等待應(yīng)答
{
IIC_Stop();
return 1;
}
IIC_Send_Byte(reg); //寫寄存器地址
IIC_Wait_Ack(); //等待應(yīng)答
IIC_Start();
IIC_Send_Byte((addr<<1)|1);//發(fā)送器件地址+讀命令
IIC_Wait_Ack(); //等待應(yīng)答
while(len)
{
if(len==1)*buf=IIC_Read_Byte(0);//讀數(shù)據(jù),發(fā)送nACK
else *buf=IIC_Read_Byte(1); //讀數(shù)據(jù),發(fā)送ACK
len--;
buf++;
}
IIC_Stop(); //產(chǎn)生一個停止條件
return 0;
}
//IIC寫一個字節(jié)
//reg:寄存器地址
//data:數(shù)據(jù)
//返回值:0,正常
// 其他,錯誤代碼
u8 VL53L0X_Write_Byte(u8 reg,u8 data)
{
IIC_Start();
IIC_Send_Byte((VL53L0X_Add<<1)|0);//發(fā)送器件地址+寫命令
if(IIC_Wait_Ack()) //等待應(yīng)答
{
IIC_Stop();
return 1;
}
IIC_Send_Byte(reg); //寫寄存器地址
IIC_Wait_Ack(); //等待應(yīng)答
IIC_Send_Byte(data);//發(fā)送數(shù)據(jù)
if(IIC_Wait_Ack()) //等待ACK
{
IIC_Stop();
return 1;
}
IIC_Stop();
return 0;
}
//IIC讀一個字節(jié)
//reg:寄存器地址
//返回值:讀到的數(shù)據(jù)
u8 VL53L0X_Read_Byte(u8 reg)
{
u8 res;
IIC_Start();
//IIC_Send_Byte((VL53L0X_Add<<1)|0);//發(fā)送器件地址+寫命令
IIC_Send_Byte(0x52);//發(fā)送器件地址+寫命令
IIC_Wait_Ack(); //等待應(yīng)答
IIC_Send_Byte(reg); //寫寄存器地址
IIC_Wait_Ack(); //等待應(yīng)答
IIC_Start();
IIC_Send_Byte(0x53 );//發(fā)送器件地址+讀命令
IIC_Wait_Ack(); //等待應(yīng)答
res=IIC_Read_Byte(0);//讀取數(shù)據(jù),發(fā)送nACK
IIC_Stop(); //產(chǎn)生一個停止條件
return res;
}
復(fù)制代碼
附帶芯片原理圖、接線及ARDUINO原碼。
0.png
(45.69 KB, 下載次數(shù): 84)
下載附件
2019-4-13 16:13 上傳
全部資料51hei下載地址:
裸機(jī)程序(new).zip
(1.04 MB, 下載次數(shù): 126)
2019-4-13 14:58 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
大只偉
時間:
2019-4-13 15:01
由于CC2530是無IIC硬件支持的,所以寫了一個,上面應(yīng)該是采用普通測距模式,由于該芯片是不提供測距函數(shù)的,因此是根據(jù)ARDUINO的原碼移植的。
作者:
大只偉
時間:
2019-4-13 15:03
這個才是 main.c
/**************************************/
/* WeBee團(tuán)隊(duì) */
/* Zigbee學(xué)習(xí)例程 */
/*例程名稱: */
/*建立時間:2012/04/18 */
/*描述:main
**************************************/
#include <ioCC2530.h>
#include "type.h"
#include "clock.h"
#include "uart.h"
#include "VL53L0.h"
#include "myiic.h"
#include "delay.h"
void main(void)
{
clockInit();
uartInit();
IIC_Init();
u8 val = 0;
u8 gbuf[16];
uint32_t cnt = 0;
// uint16_t count[3];
while(1)
{
VL53L0X_Write_Byte(VL53L0X_REG_SYSRANGE_START, 0x01);//啟動檢測
while(cnt < 100)//當(dāng)檢測完成,即讀取距離值
{
delay_ms(10);
val = VL53L0X_Read_Byte(VL53L0X_REG_RESULT_RANGE_STATUS);
if( val & 0x01) break;
cnt++;
}
// if( val & 0x01)
// uartSendString("\r\n readey \r\n",12);
// else
// uartSendString("\r\n NOT readey \r\n",16);
VL53L0X_Read_Len(VL53L0X_Add, 0x14 , 12, gbuf);//讀取數(shù)據(jù)
// count[0] = makeuint16(gbuf[7], gbuf[6]);//ambient count
// count[1] = makeuint16(gbuf[9], gbuf[8]);//signal count
// count[2] = makeuint16(gbuf[11], gbuf[10]);//距離
// DeviceRangeStatusInternal = ((gbuf[0] & 0x78) >> 3);//status
//打印距離值
uartPutInt16(makeuint16(gbuf[11], gbuf[10]));
delay_ms(500);
}
}
作者:
YXDZGD5
時間:
2019-10-3 14:47
非常不錯的資料,值得參考
作者:
YXDZGD5
時間:
2019-10-3 14:48
非常不錯的資料,值得參考,謝謝啦
作者:
史蒂芬吳倩
時間:
2020-4-26 23:59
好資料
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1