我买了一个TCS34725颜色识别器模块,商家给的arduino程序,看不懂。
我在网上下载了一个STM32F013的代码,可是读出的值不准。
程序里用的模拟I2C方式,初始化管脚如下:
//³õʼ»¯IIC
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(MIICCLOCKCMD, ENABLE ); //ʹÄÜGPIOBʱÖÓ
GPIO_InitStructure.GPIO_Pin = MIICSDAPIN|MIICSCLPIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //ÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(MIICSDAGPIO, &GPIO_InitStructure);
GPIO_SetBits(MIICSDAGPIO,MIICSCLPIN|MIICSDAPIN); //PB6,PB7 Êä³ö¸ß
delay_ms(10);
}
是推挽输出,我记得I2C应该设置为开漏输出,还要加上拉电阻。
我看STM32的头文件,可以设置为开漏输出,可是没有上拉选项。
那模拟IC用推挽输出到底靠不靠谱呢?谢谢!
|