|
GY-VL53L0X激光模块资料
本实验将实现如下功能:通过KEY1按键来控制24C02的写入,通过另外一个按键KEY0来控制24C02的读取。并在LCD模块上面显示相关信息。
主程序:
- #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);
- }
- }
复制代码
|
评分
-
查看全部评分
|