資源簡介
這是一個STM32F411的工程,用于測試CJMCU-115顏色傳感器模塊,即TCS3414顏色傳感器測試模塊代碼,可以運行。

代碼片段和文件信息
#include?“myiic.h“
#include?“delay.h“
#define?SPEED?2
////////////////////////////////////////////////////////////////////////////////// ?
//本程序只供學習使用,未經作者許可,不得用于其它任何用途
//ALIENTEK?STM32F407開發板
//IIC?驅動代碼 ???
//正點原子@ALIENTEK
//技術論壇:www.openedv.com
//創建日期:2014/5/6
//版本:V1.0
//版權所有,盜版必究。
//Copyright(C)?廣州市星翼電子科技有限公司?2014-2024
//All?rights?reserved ??
//////////////////////////////////////////////////////////////////////////////////?
//初始化IIC
void?IIC_Init(void)
{
??GPIO_InitTypeDef??GPIO_InitStructure;
??RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC?ENABLE);//使能GPIOB時鐘
??//GPIOB8B9初始化設置
??GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_8?|?GPIO_Pin_9;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_OUT;//普通輸出模式
??GPIO_InitStructure.GPIO_OType?=?GPIO_OType_PP;//推挽輸出
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_100MHz;//100MHz
??GPIO_InitStructure.GPIO_PuPd?=?GPIO_PuPd_UP;//上拉
??GPIO_Init(GPIOC?&GPIO_InitStructure);//初始化
IIC_SCL=1;
IIC_SDA=1;
}
//產生IIC起始信號
void?IIC_Start(void)
{
SDA_OUT();?????//sda線輸出
IIC_SDA=1; ?? ??
IIC_SCL=1;
delay_us(SPEED);
? IIC_SDA=0;//START:when?CLK?is?highDATA?change?form?high?to?low?
delay_us(SPEED);
IIC_SCL=0;//鉗住I2C總線,準備發送或接收數據?
} ??
//產生IIC停止信號
void?IIC_Stop(void)
{
SDA_OUT();//sda線輸出
IIC_SCL=0;
IIC_SDA=0;//STOP:when?CLK?is?high?DATA?change?form?low?to?high
? delay_us(SPEED);
IIC_SCL=1;?
IIC_SDA=1;//發送I2C總線結束信號
delay_us(SPEED); ???
}
//等待應答信號到來
//返回值:1,接收應答失敗
//????????0,接收應答成功
u8?IIC_Wait_Ack(void)
{
u8?ucErrTime=0;
SDA_IN();??????//SDA設置為輸入??
IIC_SDA=1;delay_us(SPEED); ???
IIC_SCL=1;delay_us(SPEED); ?
while(READ_SDA)
{
ucErrTime++;
if(ucErrTime>250)
{
IIC_Stop();
return?1;
}
}
IIC_SCL=0;//時鐘輸出0? ???
return?0;??
}?
//產生ACK應答
void?IIC_Ack(void)
{
IIC_SCL=0;
SDA_OUT();
IIC_SDA=0;
delay_us(SPEED);
IIC_SCL=1;
delay_us(SPEED);
IIC_SCL=0;
}
//不產生ACK應答 ????
void?IIC_NAck(void)
{
IIC_SCL=0;
SDA_OUT();
IIC_SDA=1;
delay_us(SPEED);
IIC_SCL=1;
delay_us(SPEED);
IIC_SCL=0;
} ? ?????
//IIC發送一個字節
//返回從機有無應答
//1,有應答
//0,無應答 ??
void?IIC_Send_Byte(u8?txd)
{????????????????????????
????u8?t;???
SDA_OUT();? ????
????IIC_SCL=0;//拉低時鐘開始數據傳輸
????for(t=0;t<8;t++)
????{??????????????
????????IIC_SDA=(txd&0x80)>>7;
????????txd<<=1;? ??
delay_us(SPEED);???//對TEA5767這三個延時都是必須的
IIC_SCL=1;
delay_us(SPEED);?
IIC_SCL=0;
delay_us(SPEED);
????} ?
}? ????
//讀1個字節,ack=1時,發送ACK,ack=0,發送nACK???
u8?IIC_Read_Byte(unsigned?char?ack)
{
unsigned?char?ireceive=0;
SDA_IN();//SDA設置為輸入
????for(i=0;i<8;i++?)
{
????????IIC_SCL=0;?
????????delay_us(SPEED);
IIC_SCL=1;
????????receive<<=1;
????????if(READ_SDA)receive++;???
delay_us(SPEED);?
????} ?
????if?(!ack)
????????IIC_NAck();//發送nACK
????else
????????IIC_Ack();?//發送ACK???
????return?receive;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\core\
?????文件??????109142??2013-11-07?11:54??TCS4314顏色傳感器STM32\core\core_cm4.h
?????文件???????22735??2013-11-07?11:54??TCS4314顏色傳感器STM32\core\core_cm4_simd.h
?????文件???????17146??2013-11-07?11:54??TCS4314顏色傳感器STM32\core\core_cmFunc.h
?????文件???????20513??2013-11-07?11:54??TCS4314顏色傳感器STM32\core\core_cmInstr.h
?????文件???????29607??2013-11-08?21:54??TCS4314顏色傳感器STM32\core\startup_stm32f40_41xxx.s
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\hardware\
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\hardware\i2c\
?????文件????????3207??2016-12-14?21:17??TCS4314顏色傳感器STM32\hardware\i2c\myiic.c
?????文件????????1395??2016-12-14?16:32??TCS4314顏色傳感器STM32\hardware\i2c\myiic.h
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\hardware\myi2c\
?????文件????????7852??2016-12-14?16:23??TCS4314顏色傳感器STM32\hardware\myi2c\myi2c.c
?????文件????????1754??2016-12-14?14:47??TCS4314顏色傳感器STM32\hardware\myi2c\myi2c.h
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\hardware\tcs3414\
?????文件????????6487??2016-12-14?21:44??TCS4314顏色傳感器STM32\hardware\tcs3414\tcs3414.c
?????文件????????2244??2016-12-14?21:46??TCS4314顏色傳感器STM32\hardware\tcs3414\tcs3414.h
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\lib\
?????目錄???????????0??2016-12-14?21:50??TCS4314顏色傳感器STM32\lib\inc\
?????文件????????6926??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\misc.h
?????文件???????32842??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_adc.h
?????文件???????27320??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_can.h
?????文件????????2418??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_crc.h
?????文件???????14483??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_cryp.h
?????文件???????14948??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_dac.h
?????文件????????4298??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_dbgmcu.h
?????文件???????12979??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_dcmi.h
?????文件???????28884??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_dma.h
?????文件???????19560??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_dma2d.h
?????文件????????8014??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_exti.h
?????文件???????24432??2013-11-08?22:01??TCS4314顏色傳感器STM32\lib\inc\stm32f4xx_flash.h
............此處省略131個文件信息
評論
共有 條評論