芯片是stc15w408as
我手上没有同款芯片,不然,倒也方便帮忙移植一下。不过,别急。问一下Ai,有原32G程序做参考,移植到15w,问一下就行。不用自己烦恼的。 摄像头不需要初始化和校正环节么,上电直接读数据?
C_wolf 发表于 2026-4-19 23:41
摄像头不需要初始化和校正环节么,上电直接读数据?
看一下,程序中有初始化部分,任何外设,都要初始化的。{:4_165:} 科学妞妞 发表于 2026-4-20 09:13
看一下,程序中有初始化部分,任何外设,都要初始化的。
不好意思,我只看到了单片机初始化和显示屏初始化,请问摄像头参数初始化是哪个? C_wolf 发表于 2026-4-20 11:17
不好意思,我只看到了单片机初始化和显示屏初始化,请问摄像头参数初始化是哪个? ...
// 软件 I2C 函数(VL53L0X)- 标准协议,含ACK检查
void I2C_Start(void)
{
SDA = 1; SCL = 1; delay_us(5);
SDA = 0; delay_us(5);
SCL = 0; delay_us(5);
}
void I2C_Stop(void)
{
SDA = 0; SCL = 1; delay_us(5);
SDA = 1; delay_us(5);
}
void I2C_SendByte(u8 dat)
{
u8 i;
for (i = 0; i < 8; i++) {
if (dat & 0x80) SDA = 1;
else SDA = 0;
dat <<= 1;
delay_us(2);
SCL = 1; delay_us(2);
SCL = 0; delay_us(2);
}
SDA = 1; delay_us(2);
SCL = 1; delay_us(2);
}
u8 I2C_CheckAck(void)
{
u8 ack = 0;
if (SDA == 0) ack = 1;
SCL = 0; delay_us(2);
return ack;
}
// ... I2C读写函数完整版见附件
//==========================================================================
// VL53L0X 寄存器定义
#define VL53L0X_ADDR 0x29
#define REG_IDENTIFICATION_MODEL_ID 0xC0
#define REG_SYSRANGE_START 0x00
#define REG_RESULT_RANGE_STATUS 0x14
u8 gbuf;
// 块读取函数(一次性读取12字节距离数据)
void read_block_data_at(u8 reg, u8 len, u8 *buf)
{
u8 i;
I2C_Start();
I2C_SendByte((VL53L0X_ADDR << 1) | 0);
I2C_CheckAck();
I2C_SendByte(reg);
I2C_CheckAck();
I2C_Stop();
I2C_Start();
I2C_SendByte((VL53L0X_ADDR << 1) | 1);
I2C_CheckAck();
for (i = 0; i < len; i++) {
buf = I2C_ReadByte();
if (i == len - 1) I2C_SendNak();
else I2C_SendAck();
}
I2C_Stop();
}
大叶子 发表于 2026-4-22 15:54
// 软件 I2C 函数(VL53L0X)- 标准协议,含ACK检查
void I2C_Start(void)
{
你说的是I2C外设初始化,我问的是VL53L0X的初始化。
就像SPI液晶屏一样,先初始化SPI,在通过SPI初始化液晶void LCD_Init(void)
void VL53L0X_Init(void)不需要么??? C_wolf 发表于 2026-4-22 21:36
你说的是I2C外设初始化,我问的是VL53L0X的初始化。
就像SPI液晶屏一样,先初始化SPI,在通过SPI初始化 ...
你说对了,VL53L0X是I2C外设,就像SPI液晶屏一样,先初始化SPI{:qiang:} 大叶子 发表于 2026-4-25 23:04
你说对了,VL53L0X是I2C外设,就像SPI液晶屏一样,先初始化SPI
服了!
你是听不懂,我在问什么吗?
还是你不知道怎么初始化VL53L0X的寄存器,这个程序只是照搬来的。{:cahan:} C_wolf 发表于 2026-4-27 21:26
服了!
你是听不懂,我在问什么吗?
还是你不知道怎么初始化VL53L0X的寄存器,这个程序只是照搬来的。 ...
默认连续测量模式。如果需要初始化设置并调整VL53L0X的寄存器,可以改默认设置,使其功能强大,可以实现许多功能。但是,要查官方寄存器,需要重新整理测试,需要时间深入研究。 科学妞妞 发表于 2026-4-28 12:55
默认连续测量模式。如果需要初始化设置并调整VL53L0X的寄存器,可以改默认设置,使其功能强大,可以实现许 ...
嗯嗯,是的。
感谢明白人的回复。{:4_196:}
页:
1
[2]