www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] #ifndef __AT24C02_H__ #define __AT24C02_H__ #include"stm32f10x.h" void iICinit(void); void iicwrite(u8 add,u8 Achar); u8 iicread(u8 add); #endif #include"stm32f10x.h" #include"a

#ifndef __AT24C02_H__

#define __AT24C02_H__

#include"stm32f10x.h"

void iICinit(void);

void iicwrite(u8 add,u8 Achar);

u8 iicread(u8 add);

#endif

#include"stm32f10x.h"

#include"at24c02.h"

void iicstart(void);

void iicstop(void);

void ack(void);

void iicwritebyte(u8 a);

u8 iicreadbyte(void);

void iicwrite(u8 add,u8 Achar);

u8 iicread(u8 add);

void iicinit(void);

/////////////////////////////

void delay5us(void)//ums

{

unsigned short i, j;

unsigned short time;

time=5;

for(; time > 0; time--){

for(j = 0; j < 5; j++){

for(i = 0; i < 1; i++);

}

}

}

void delayms(unsigned short time)//nms

{

unsigned short i, j;

for(; time > 0; time--){

for(j = 0; j < 10; j++){

for(i = 0; i < 1004; i++);

}

}

}

void iicinit(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphCLOCkCmd(RCC_APB2Periph_GPIOB,ENABLE);

GPIO_InitStructure.GPIO_PIN= GPIO_Pin_6|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

GPIO_Init(GPIOB, &GPIO_InitStructure);

}

void iicstart(void)

{

GPIO_SetBits(GPIOB,GPIO_Pin_7); //sda=1;

delay5us();

GPIO_SetBits(GPIOB,GPIO_Pin_6); //scl=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_7); //sda=0;

delay5us();

}

void iicstop(void)

{

GPIO_ResetBits(GPIOB,GPIO_Pin_7); //sda=0;

delay5us();

GPIO_SetBits(GPIOB,GPIO_Pin_6); //scl=1;

delay5us();

GPIO_SetBits(GPIOB,GPIO_Pin_7); //sda=1;

delay5us();

}

void ack(void)

{

u16 i;

GPIO_SetBits(GPIOB,GPIO_Pin_6);//scl=1;

delay5us();

while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7)&&(i<0x2b0)) {i++;}

GPIO_ResetBits(GPIOB,GPIO_Pin_6);//scl=0;

delay5us();

}

void iicwritebyte(u8 a)

{

u16 i;

GPIO_ResetBits(GPIOB,GPIO_Pin_6); //scl=0;

delay5us();

for(i=0;i<8;i++)

{

if(a&0x80)

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

else

GPIO_ResetBits(GPIOB,GPIO_Pin_7);;

a=a<<1;

GPIO_SetBits(GPIOB,GPIO_Pin_6);//scl=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6);//scl=0;

delay5us();

}

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

delay5us();

}

u8 iicreadbyte()

{

u8 i,temp;

temp=0;

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6); //scl=0;

delay5us();

for(i=0;i<8;i++)

{

GPIO_SetBits(GPIOB,GPIO_Pin_6); //scl=1;

delay5us();

delay5us();

temp=(temp<<1)|GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7);

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6); //scl=0;

delay5us();

}

GPIO_SetBits(GPIOB,GPIO_Pin_7);//sda=1;

delay5us();

GPIO_ResetBits(GPIOB,GPIO_Pin_6);//scl=0;

delay5us();

return temp;

}

void iicwrite(u8 add,u8 Achar)

{

iicstart();

iicwritebyte(0xa0);

ack();

iicwritebyte(add);

ack();

iicwritebyte(Achar);

ack();

iicstop();

delayms(20);

}

u8 iicread(u8 add)

{

u8 temp;

iicstart();

iicwritebyte(0xa0);

ack();

iicwritebyte(add);

ack();

iicstart();

iicwritebyte(0xa1);

ack();

temp=iicreadbyte();

ack();

iicstop();

return temp;

}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在這篇文章中,小編將對(duì)PLC的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進(jìn)對(duì)它的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: PLC 模塊化 程序

對(duì)程序進(jìn)行優(yōu)化,通常是指優(yōu)化程序代碼或程序執(zhí)行速度。優(yōu)化代碼和優(yōu)化速度實(shí)際上是一個(gè)予盾的統(tǒng)一。一般是優(yōu)化了代碼的尺寸,就會(huì)帶來執(zhí)行時(shí)間的增加;如果優(yōu)化了程序的執(zhí)行速度,通常會(huì)帶來代碼增加的副作用。很難魚與熊掌兼得,只能在...

關(guān)鍵字: 單片機(jī) 程序

一個(gè)程序首先要保證正確性,在保證正確性的基礎(chǔ)上,性能也是一個(gè)重要的考量。要編寫高性能的程序,必須選擇合適的算法和數(shù)據(jù)結(jié)構(gòu)。

關(guān)鍵字: CPU 程序 緩存

仿真的概念其實(shí)使用非常廣,最終的含義就是使用可控的手段來模仿真實(shí)的情況。在嵌入式系統(tǒng)的設(shè)計(jì)中,仿真應(yīng)用的范圍主要集中在對(duì)程序的仿真上。

關(guān)鍵字: 單片機(jī) 仿真器 程序

步進(jìn)電動(dòng)機(jī)是將電脈沖激勵(lì)信號(hào)轉(zhuǎn)換成相應(yīng)的角位移或線位移的離散值控制電動(dòng)機(jī),這種電動(dòng)機(jī)每當(dāng)輸入一個(gè)電脈沖就動(dòng)一步,所以又稱脈沖電動(dòng)機(jī)。

關(guān)鍵字: 步進(jìn)電機(jī) 正反轉(zhuǎn) 程序

KeilμVision4是Keil軟件公司為8051系列微控制器及其兼容產(chǎn)品設(shè)計(jì)的集成式軟件開發(fā)環(huán)境。μVision4集成了C51編譯器和A51匯編器,其界面類似于Microsoft VS,支持C語言和匯編語言程序的編寫...

關(guān)鍵字: 程序 編譯 鏈接

雙方各執(zhí)一詞,誰也不退讓,吳雄昂的身份成為薛定諤的貓:在Arm公司眼中,他已經(jīng)被罷免一切職位;在安謀中國(guó)聲明里,吳仍然一切照常。這種疊加態(tài)或許還會(huì)持續(xù)一段時(shí)間,但疊加態(tài)應(yīng)該很快就會(huì)塌縮成一個(gè)確定結(jié)果。同樣,安謀中國(guó)董事會(huì)...

關(guān)鍵字: ARM 中國(guó)董事會(huì) 程序

除了指令空間,自定義指令對(duì)應(yīng)的程序出入口也有嚴(yán)格限制。自定義指令在使用過程中出現(xiàn)任何錯(cuò)誤時(shí),Arm的工具鏈都能及時(shí)對(duì)其進(jìn)行識(shí)別、提取,并且進(jìn)行相應(yīng)的控制。目前也已經(jīng)有第三方編譯器,可以識(shí)別自定義指令集可能會(huì)出現(xiàn)的錯(cuò)誤。專...

關(guān)鍵字: 指令空間 程序 ARM

如果說一眾美國(guó)科技公司遵循特朗普命令斷供華為,還算某種程度上維護(hù)所謂程序正義不得已而為之;那么各路本應(yīng)對(duì)政治保持中立的國(guó)際技術(shù)標(biāo)準(zhǔn)組織,先后宣布剔除華為成員資格,絕對(duì)算助紂為虐;而聯(lián)邦快遞將華為委托寄送目的地為中國(guó)的快遞...

關(guān)鍵字: 快遞 華為 程序

在軟件開發(fā)過程中,我們希望軟件可以運(yùn)行無誤。但是常常事與愿違,程序經(jīng)常跑飛,或者卡死。原因有很多,有可能是因?yàn)檐浖到y(tǒng)設(shè)計(jì)的原因,或者外部傳感器的失效,再或者是程序的Bug等。為了防止程序在出現(xiàn)問題之后,可以順利復(fù)位和重...

關(guān)鍵字: 軟件 程序 傳感器
關(guān)閉