注意事项
1.DVI引脚电路,根据手册上显示DVI引脚上电要和VCC有一个时间差

电路图参考网络上的原理图可以这样接(下图),也可以接单片机引脚,用单片机引脚来控制逻辑电路的上电,实际情况测试直接接VCC也没多大问题

2.程序上要注意的几点
2.1 SDA引脚的读取
#define B_LUX_SDA0_DAT ((Gpio_GetInputIO(B_LUX_GPIO, B_LUX_SDA0)))
比如这个句宏定义读取SDA引脚的电平,有些单片机的库函数这个读取函数返回的是0或者1,而有些单片机的库函数返回的就是0或者(1<<pin),比如SDA用的是PA1,返回的就是0x02,所以在写程序的不要直接在数值上与这个函数
dat |= B_LUX_SDA0_DAT; //读数据
而要写成这样
/*---------------------------------------------------------------------
功能描述: 从IIC总线接收一个字节数据
参数说明: 无
函数返回: 接收字节
---------------------------------------------------------------------*/
uint8 B_LUX_RecvByte()
{
uint8 i;
uint8 dat = 0;
B_LUX_SDA0_I;
// B_LUX_SDA0_H; //使能内部上拉,准备读取数据,
for (i = 0; i < 8; i++) // 8位计数器
{
dat <<= 1;
B_LUX_SCL0_H; //拉高时钟线
delay10us(1); //延时
if(B_LUX_SDA0_DAT)
dat |= 0x01; //读数据
B_LUX_SCL0_L; //拉低时钟线
delay10us(1); //延时
}
B_LUX_SDA0_O;
return dat;
}
2.2 端口设置,在测试过程中出现读出数据全是0的问题,反复查找最好找到SDA设置成输入的时候没有设置上拉,可能是因为BH1750的输出电流不够吧拉不高SDA的电平导致
stcGpioCfg.enPuPd = GpioPu;
本文详细介绍了DVI引脚上电时间差的重要性,以及在实际电路中,可以使用单片机控制逻辑电路的上电。同时,针对程序设计,提到了SDA引脚读取的注意事项,特别是在读取数据时应避免直接与库函数返回值进行操作,而应通过位移操作来获取数据。此外,还指出在端口设置中,确保SDA设置为输入时启用上拉电阻,以防读出数据异常。
1781

被折叠的 条评论
为什么被折叠?



