91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

SC7A20加速度傳感器驅動,SC7A20加速度傳感器驅動,SC7A20加速度傳感器驅動。

資源截圖

代碼片段和文件信息

#include?“Analog_IIC.h“

/*

??@16M---精確延時到微秒

*/
void?Analog_IIC_Delay(u8?n)//@16M---精確延時到微秒
{
??n?=?n;
??nop();?
??nop();
??nop();
}
/*

??模擬IIC引腳方向配置

*/
void?Analog_IIC_Pin_Init(void)
{
??GPIOC->DDR?|=?((uint8_t)0x01);//PC0?IIC_SDA??輸出
??GPIOC->CR1?|=?((uint8_t)0x01);//PC0?IIC_SDA??推挽

??GPIOC->DDR?|=?((uint8_t)0x02);//PC1?IIC_SCL??輸出
??GPIOC->CR1?|=?((uint8_t)0x02);//PC1?IIC_SCL??推挽
??
??IIC_SCL_1;??//拉高時鐘線
??IIC_SDA_1;??//拉高數據線
}
/*

??模擬IIC_SDA引腳方向配置
??參數值??1 輸出
??????????0 輸入

*/
void?IIC_SDA_Dir(u8?d)
{
??if(d?==?1)//輸出
??{
????GPIOC->DDR?|=?((uint8_t)0x01);//PC0?IIC_SDA??輸出
????GPIOC->CR1?|=?((uint8_t)0x01);//PC0?IIC_SDA??推挽
??}
??else?if(d?==?0)//輸入
??{
????GPIOC->DDR?&=?((uint8_t)~0x01);//PC0?IIC_SDA??輸入
????GPIOC->CR1?&=?((uint8_t)~0x01);//PC0?IIC_SDA??浮空
??}
}
//產生IIC起始信號
void?IIC_Start(void)
{
??IIC_SDA_Dir(1);//IIC_SDA線輸出
??IIC_SDA_1; ?//拉高數據線? ??
??IIC_SCL_1; ?//拉高時鐘線
??Analog_IIC_Delay(10);
??IIC_SDA_0;???//拉低數據線
??Analog_IIC_Delay(10);
??IIC_SCL_0;???//拉低時鐘線??發送IIC總線開始信號
} ??
//產生IIC停止信號
void?IIC_Stop(void)
{
??IIC_SDA_Dir(1);//IIC_SDA線輸出
??IIC_SCL_0;???//拉低時鐘線?
??IIC_SDA_0;???//拉低數據線
??Analog_IIC_Delay(10);
??IIC_SCL_1;???//拉高時鐘線 ??
??Analog_IIC_Delay(10);
??IIC_SDA_1;???//拉高數據線??發送IIC總線停止信號
??Analog_IIC_Delay(10); ???
}
//產生ACK應答
void?IIC_Ack(void)
{
??IIC_SCL_0;???//拉低時鐘線?
??IIC_SDA_Dir(1);//IIC_SDA線輸出
??IIC_SDA_0;???//拉低數據線
??Analog_IIC_Delay(10);
??IIC_SCL_1;???//拉高時鐘線
??Analog_IIC_Delay(10);
??IIC_SCL_0;???//拉低時鐘線?
}
//不產生ACK應答 ????
void?IIC_NAck(void)
{
??IIC_SCL_0;???//拉低時鐘線?
??IIC_SDA_Dir(1);//IIC_SDA線輸出
??IIC_SDA_1;???//拉高數據線
??Analog_IIC_Delay(10);
??IIC_SCL_1;???//拉高時鐘線
??Analog_IIC_Delay(10);
??IIC_SCL_0;???//拉低時鐘線?
}
//等待應答信號到來
//返回值:1 接收應答失敗
//???????0 ????????接收應答成功
u8?IIC_Wait_Ack(void)
{
??u8?Wait_TOut_Cnt?=?0;//設置等待應答信號超時計數
??IIC_SDA_Dir(0);? ?//IIC_SDA線輸入
??IIC_SDA_1; ?????//拉高數據線
??Analog_IIC_Delay(10); ???
??IIC_SCL_1;?????????//拉高時鐘線??等待應答信號
??Analog_IIC_Delay(10); ?
??while(IIC_SDA)
??{
????Wait_TOut_Cnt++;
????if(Wait_TOut_Cnt?>?250)
????{
??????IIC_Stop(); ?//等待應答信號超時??發送IIC總線停止信號
??????return?1;
????}
??}
??IIC_SCL_0; ?//拉低時鐘線??結束應答信號
??return?0;??
}? ? ?????
//IIC發送一個字節 ??
void?IIC_Write_Byte(u8?WByte)
{????????????????????????
??u8?Wb_Cnt?=?0;?//寫數據位計數????
??IIC_SDA_Dir(1);//IIC_SDA線輸出? ????
??IIC_SCL_0;???//拉低時鐘線????開始數據傳輸
??for(Wb_Cnt=0;?Wb_Cnt<8;?Wb_Cnt++)
??{
????if(WByte&0x80)
????{
??????IIC_SDA_1;????
????}
????else
????{
??????IIC_SDA_0;
????}
????WByte?<<=?1;?//數據移位
????Analog_IIC_Delay(10);
????IIC_SCL_1;?//拉高時鐘線
????Analog_IIC_Delay(10);?
????IIC_SCL_0;?//拉低時鐘線???準備開始傳送數據位
????Analog_IIC_Delay(10);
??} ?
}? ????
//IIC讀取一個字節
//參數值:1 發送Ack
//???????0 ????????不發送Ack
u8?IIC_Read_Byte(u8?SF_Ack)
{
??u8?Rb_Cnt?=?0;?//讀數據位計數?
??u8?RByte??=?0;?//讀字節
??IIC_SDA_Dir(0);//SDA設置為輸入
??for(Rb_Cnt=0;?Rb_Cnt<8;?Rb_Cnt++)
?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????6200??2017-03-14?09:17??SC7A20驅動\Analog_IIC.c

?????文件????????955??2017-04-25?16:41??SC7A20驅動\Analog_IIC.h

?????文件??????15159??2017-03-21?09:00??SC7A20驅動\drv_l1_gsensor.c

?????文件???????3704??2017-03-21?08:57??SC7A20驅動\drv_l1_gsensor.h

?????文件???????2675??2017-05-05?17:15??SC7A20驅動\SC7A20.c

?????目錄??????????0??2017-05-06?09:29??SC7A20驅動

?????文件????1602327??2017-04-14?16:46??SC7660-SC7A30E-SC7A20內部功能應用說明書_0.2.pdf

?????文件?????623318??2017-03-31?10:30??SC7A20說明書_0.6_帶寄存器描述_?.pdf

-----------?---------??----------?-----??----

??????????????2254338????????????????????8


評論

共有 條評論