I2C總線協(xié)議程序在做程序是我在網(wǎng)上找的是周立功的程序,感覺(jué)還不錯(cuò)順便轉(zhuǎn)載;在使用的過(guò)程中一定要注意時(shí)序、時(shí)間的問(wèn)題?!癷2c.h文件”//I2C總線綜合發(fā)送函數(shù),向從機(jī)發(fā)送多個(gè)字節(jié)的數(shù)據(jù)bit I2C_Puts
.H文件預(yù)處理typedef unsignedcharINT8U;//0~255typedef signedcharINT8S;//-128~127typedef unsigned int INT16U;//0~65535typedef signed int INT16S;//-32768~32767typedef unsigned long INT32U;//
庫(kù)文件的使用:1.打開(kāi)所用庫(kù)的工程文件,如I2C總線EEPROM庫(kù):2.修改相應(yīng)參數(shù):(若不清楚,請(qǐng)?jiān)儐?wèn)權(quán)威人士)1.單片機(jī)型號(hào)2.選擇Release或Debug,一般默認(rèn)選擇Release3.SCL,SDA,WP對(duì)應(yīng)的單片機(jī)引腳4.延
C語(yǔ)言中,想使用精確的延時(shí)程序并不容易。IAR中有這樣的一個(gè)函數(shù)__delay_cycles(),該函數(shù)在頭文件intrinsics.h中定義,函數(shù)的作用就是延時(shí)N個(gè)指令周期。根據(jù)這個(gè)函數(shù)就可以實(shí)現(xiàn)精確的延時(shí)函數(shù)了(但不能
存儲(chǔ)器分為兩大類(lèi):ram和rom。ram就不講了,今天主要討論rom。rom最初不能編程,出廠什么內(nèi)容就永遠(yuǎn)什么內(nèi)容,不靈活。后來(lái)出現(xiàn)了prom,可以自己寫(xiě)入一次,要是寫(xiě)錯(cuò)了,只能換一片,自認(rèn)倒霉。人類(lèi)文明
無(wú)論從那個(gè)地址連續(xù)寫(xiě),不能超過(guò)(跨過(guò))一整頁(yè)。先明白頁(yè)寫(xiě)的道理。AT24CXX系列的EEPROM為了提高寫(xiě)效率,提供了頁(yè)寫(xiě)功能,內(nèi)部有個(gè)一頁(yè)大小的寫(xiě)緩沖RAM,地址范圍當(dāng)然就是從00到一頁(yè)大小,發(fā)生寫(xiě)操作時(shí)
IAR編譯器配置(AVR)一、EEPROM 區(qū)域數(shù)據(jù)存儲(chǔ):__eeprom unsigned char a;//定義一個(gè)變量存放在EEPROM空間__eeprom unsigned char a @ 0x8;//定義一個(gè)變量存放在EEPROM空間0X08單元__eeprom unsigned ch
昨天在回家的火車(chē)上,帶了一本《匠人手記》,看了幾篇,受益匪淺。其中一篇講到編程思路,也就是如何入手構(gòu)建一個(gè)程序。我用C語(yǔ)言在原文的基礎(chǔ)上稍微展開(kāi)一下,以備日后查看。簡(jiǎn)單的程序只要用簡(jiǎn)單的方
/*閑言碎語(yǔ)不要講*//*AVR定時(shí)器0的比較匹配功能試驗(yàn) */#include #define uchar unsigned char#define uint unsigned int#define set_bit(a,b)a|=(1
AVR單片機(jī)的熔絲位配置是AVR單片機(jī)初學(xué)者很容易出錯(cuò)的地方,其實(shí)只要注意一些事項(xiàng),還是能夠盡量避免單片機(jī)被鎖死,即使單片機(jī)被鎖死,也可以使用一些方法解鎖,本文講述我在剛開(kāi)始接觸AVR單片機(jī)時(shí)熔
AVR單片機(jī)的IO端口操作是撐握AVR技術(shù)的基礎(chǔ),因此需要清晰的理解。下面的例子列出了操作IO端口的方法,資料來(lái)源于OURAVR。舉例一:將PB0定義為輸出,且輸出為高電平DDRB=BIT(0);//定義PB0為輸出PORTB|=
對(duì)芯片內(nèi)部flash進(jìn)行操作的函數(shù),包括讀取,狀態(tài),擦除,寫(xiě)入等等,可以允許程序去操作flash上的數(shù)據(jù)?;A(chǔ)應(yīng)用1,F(xiàn)LASH時(shí)序延遲幾個(gè)周期,等待總線同步操作。推薦按照單片機(jī)系統(tǒng)運(yùn)行頻率,0—24MHz時(shí),
一個(gè)是獲取狀態(tài)的,一個(gè)是獲取中斷的。EXTI_GetFlagStatus只是純粹讀取中斷標(biāo)志位的狀態(tài),但是不一定會(huì)響應(yīng)中斷(EXT_IMR寄存器對(duì)該中斷進(jìn)行屏蔽);而EXTI_GetITStatus除了讀取中斷標(biāo)志位,還查看EXT_
SysTick,ST的數(shù)據(jù)手冊(cè)上稍微提了一下但是沒(méi)有詳細(xì)介紹,這里我們仔細(xì)研究下。如有錯(cuò)誤之處敬請(qǐng)更正。SysTick位于NVIC中,它主要應(yīng)用在操作系統(tǒng)中,所以平常我們用的很少,但是我們可以用它來(lái)做簡(jiǎn)單的延
STM32因?yàn)榫哂蠳VIC使其中斷體系大大提升,NVIC使用來(lái)管理異常與中斷的,并且NVIC模塊中還包含SysTick。這次我們來(lái)講一下EXTI外部中斷。1.在用到時(shí)我們必須要設(shè)置中斷向量表,我們要將中斷向量表存儲(chǔ)在一