基于stm32的数字光照传感器I2C通讯问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于stm32的数字光照传感器I2C通讯问题。相关的知识,希望对你有一定的参考价值。

采集不回来正确的数据。FFFFFFFF或0.哪里有问题啊
#define SDA_IN() GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;
#define SDA_OUT() GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;

//IO²Ù×÷º¯Êý
#define IIC_SCL PBout(10) //SCL
#define IIC_SDA PBout(11) //SDA
#define READ_SDA PBin(11) //ÊäÈëSDA
void IIC_Init(void)

GPIO_InitTypeDef GPIO_InitStructure;
//RCC->APB2ENR|=1<<4;//ÏÈʹÄÜÍâÉèIO PORTCʱÖÓ
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ; //ÍÆÍìÊä³ö?¿ªÂ©Êä³ö£¿
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

EN=1;
IIC_SCL=1;
IIC_SDA=1;

u32 Get(void)

u32 val32 = 0;
u32 temp;
u8 i = 0;

IIC_Start() ;
IIC_Send_Byte(0x94);
IIC_Wait_Ack();
IIC_Send_Byte(0x00);
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0x95); //½øÈë½ÓÊÕģʽ
IIC_Wait_Ack();
delay_us(10);
for (i=0; i<=3; i++)

m_BUF[i] = IIC_Read_Byte(0);
if (i == 3)

IIC_NAck();

else

IIC_Ack();


IIC_Stop();
val32 = m_BUF[3];
val32 <<= 8;
val32 |= m_BUF[2];
val32 <<= 8;
val32 |= m_BUF[1];
val32 <<= 8;
val32 |= m_BUF[0];

temp = (u32)val32;
return (u32)temp;

参考技术A 好专业的程序。
传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
传感器的特点包括:微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。

以上是关于基于stm32的数字光照传感器I2C通讯问题。的主要内容,如果未能解决你的问题,请参考以下文章

STM32+BH1750光敏传感器获取光照强度

STM32+BH1750光敏传感器获取光照强度

8★☆基于STM32的小区环境检测系统√★☆

8★☆基于STM32的小区环境检测系统√★☆

如何使用 STM32g4xx_HAL_Driver HAL 库通过 i2c 读取传感器数据?

#yyds干货盘点# 基于STM32+ESP8266+华为云设计的智能家居控制系统