#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "myiic.h"
#include "VL53L0.h"
//串口1发送一个字符
void usart1_send_char(u8 c[10],u8 len)
{
u8 t;
// printf("\r\n您发送的消息为:\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, c[t]); //向串口1发送数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
}
// printf("\r\n\r\n");//插入换行
}
int main(void)
{
u8 val = 0;
u8 gbuf[16];
u8 DeviceRangeStatusInternal;
uint32_t cnt = 0;
uint16_t count[3];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
IIC_Init();
while(1)
{
VL53L0X_Write_Byte(VL53L0X_REG_SYSRANGE_START, 0x01);
while(cnt < 100)
{
delay_ms(10);
val = VL53L0X_Read_Byte(VL53L0X_REG_RESULT_RANGE_STATUS);
if( val & 0x01) break;
cnt++;
}
if( val & 0x01)
printf("\r\n readey \r\n");
else
printf("\r\n not readey \r\n");
VL53L0X_Read_Len(VL53L0X_Add, 0x14 , 12, gbuf);
count[0] = makeuint16(gbuf[7], gbuf[6]);
count[1] = makeuint16(gbuf[9], gbuf[8]);
count[2] = makeuint16(gbuf[11], gbuf[10]);
DeviceRangeStatusInternal = ((gbuf[0] & 0x78) >> 3);
printf("\r\n ambient count = %4d signal count = %4d distance = %4d status = %d ",count[0],count[1],count[2],DeviceRangeStatusInternal);
// data_analy(count[2]);
delay_ms(1000);
}
}
|