VL53l0x激光测距的stm32与51单片机程序单片机解密
- 单片机解密#include "stm32f10x.h" //stm32头文件
- 单片机解密#include "usart.h"
- 单片机解密#include "sys.h"
- #include "delay.h"
- #include "led.h"
- #include "vl53l0x.h"
- #include "vl53l0x_it.h"
- /******************************************************************************/
- extern VL53L0X_Dev_t vl53l0x_dev;//设备I2C数据参数
- extern u8 alarm_flag;
- /******************************************************************************/
- int main(void)
- {
- u32 i;
- u8 mode;
- VL53L0X_RangingMeasurementData_t RangingMeasurementData;
-
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//分组2
- uart_init(115200); //串口1
- delay_init();
- LED_Init();
- delay_ms(200);
-
- if(vl53l0x_init(&vl53l0x_dev))//vl53l0x初始化
- printf("VL53L0X_init Error!!!\r\n");
- else
- printf("VL53L0X_init OK\r\n");
-
- mode=3; //高速模式,写错会导致测量速度慢
- vl53l0x_interrupt_start(&vl53l0x_dev,mode);
-
- while(1)
- {
- //VL53L0X_ClearInterruptMask(dev,0);//清除VL53L0X中断标志位
- //status = VL53L0X_StopMeasurement(dev); //停止测量
-
- if(alarm_flag==1)//触发中断
- {
- alarm_flag=0;
- VL53L0X_GetRangingMeasurementData(&vl53l0x_dev,&RangingMeasurementData);//获取测量距离,并且显示距离
- printf("d: %3d mm\r\n",RangingMeasurementData.RangeMilliMeter);
- VL53L0X_ClearInterruptMask(&vl53l0x_dev,0);//清除VL53L0X中断标志位
- }
- i++;
- if(i>=0x1fffff)
- {
- i=0;
- LED0=!LED0;
- }
- }
- }
- /***************************************************************************/
- /***************************************************************************/
单片机源程序如下:
- /*****************************
- 更新日期2017年2月28日
- 模拟串口参考stc官方程序
- 来自arduino实例
- 使用11.0592MHz内部RC;
- VL53L0X:
- SCL-->P3.3
- SDA-->P3.2
- 串口:
- P3.0 RXD
- P3.1 TXD
- *******************************/
- #include"stc.h"
- #include"i2c.h"
- #include"VL53L0X.h"
- #include "intrins.h"
- #define uchar unsigned char
- #define uint unsigned int

芯片解密