日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]硬件平臺:stm32f10xZET6開發(fā)環(huán)境:keil MDK uVisionv4.10開發(fā)語言:C、ST_lib_3.5固件庫EEPROM:電可擦可編程只讀存儲器。【stm32f10xZET6開發(fā)板的I2C外設(shè)物理層特點】(1)兩條串行總線:一條雙向數(shù)據(jù)線(SDA),一條時

硬件平臺:stm32f10xZET6
開發(fā)環(huán)境:keil MDK uVisionv4.10
開發(fā)語言:C、ST_lib_3.5固件庫

EEPROM:電可擦可編程只讀存儲器。

【stm32f10xZET6開發(fā)板的I2C外設(shè)物理層特點】
(1)兩條串行總線:一條雙向數(shù)據(jù)線(SDA),一條時鐘線(SCL);
(2)從設(shè)備地址唯一;
(3)支持總線仲裁;
(4)三種速率傳輸模式:
標準模式100kbit/s
快速模式400kbit/s
高速模式3.4Mbit/s (目前大多I2C設(shè)備尚不支持高速模式)
(5)片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺波保證數(shù)據(jù)完整;
(6)連接到相同總線的IC數(shù)量受到總線的最大電容400pF限制;

【I2C接口特性】
(1) STM32 中和大容量型號芯片均有多達 2 個I2C總線接口;
(2) 能夠工作于多主機或多從機模式,主從均可收發(fā);
(3) 支持標準模式 100Kbit/s 和快速模式 400Kbit/s,不支持高
速模式;
(4) 支持 7 位或 10 位從設(shè)備地址尋址;
(5) 內(nèi)置了硬件 CRC 發(fā)生器/ 校驗器;
(6) I2C 的接收和發(fā)送都可以使用 DMA 操作;
(7) 支持系統(tǒng)管理總線(SMBus)總線 2.0 版;

typedef struct
{
uint32_t I2C_ClockSpeed; /*!< 指定時鐘總線速率,100/400kHz */
uint16_t I2C_Mode; /*!< 指定為I2C通信模式 */
uint16_t I2C_DutyCycle; /*!< 指定I2C快速模式 */
uint16_t I2C_OwnAddress1; /*!< 指定從設(shè)備自身地址,7/10bit(地址0x0A對應(yīng)宏) */
uint16_t I2C_Ack; /*!< 使能或禁止ack */
uint16_t I2C_AcknowledgedAddress; /*!< 指定7/10bit從設(shè)備地址下的ack */
} I2C_InitTypeDef;

在 stm32 如何建立與 EEPROM 的通訊步驟:
(1) 配置 I/O 端口,確定并配置 I2C 的模式,使能 GPIO 和 I2C
時鐘。
(2) 寫:
1) 檢測 SDA 是否空閑;
2) 按 I2C 協(xié)議發(fā)出起始信號;
3) 發(fā)出 7 位器件地址和寫模式;
4) 要寫入的存儲區(qū)首地址;
5) 用頁寫入方式或字節(jié)寫入方式寫入數(shù)據(jù);
6) 發(fā)送 I2C 通訊結(jié)束訊信號
每個操作之后要檢測“事件”確定是否成功。寫完后檢測 EEPROM 是否進
入 standby 狀態(tài)。
(3) 讀:
1) 檢測 SDA 是否空閑;
2) 按 I2C 協(xié)議發(fā)出起始訊號;
3) 發(fā)出 7 位器件地址和寫模式(偽寫);
4) 發(fā)出要讀取的存儲區(qū)首地址;
5) 重發(fā)起始訊號;第 260 頁 共 729 頁
6) 發(fā)出 7 位器件地址和讀模式;
7) 接收數(shù)據(jù);
類似寫操作,每個操作之后要檢測“事件”確定是否成功。

I2C_GenerateSTART(); // 產(chǎn)生 I2C 的通訊起始信號 S
I2C_Send7bitAddress(); // 發(fā)送7位從設(shè)備地址
I2C_SendData(); // 發(fā)送一個數(shù)據(jù)字節(jié)(8bit)
I2C_GenerateSTOP(); // 產(chǎn)生 I2C 的通訊停止信號 P
I2C_CheckEvent (); // I2C 傳輸時的事件監(jiān)測

/*代碼演示-mian.c*/

/**

******************************************************************************

*@filemain.c

*@authorfire

*@versionV1.0

*@date2013-xx-xx

*@briefI2CEEPROM(AT24C02)測試,測試信息通過USART1打印在電腦的超級終端

******************************************************************************

*/

#include"stm32f10x.h"

#include"bsp_usart1.h"

#include"bsP_i2c_ee.h"

#include"bsP_led.h"

#include

#defineEEP_Firstpage0x00

u8I2c_Buf_Write[256];

u8I2c_Buf_Read[256];

voidI2C_Test(void);

/**

*@brief主函數(shù)

*@param無

*@retval無

*/

intmain(void)

{

/*串口1初始化*/

USART1_Config();

printf("rn這是一個I2C外設(shè)(AT24C02)讀寫測試例程rn");

//LED_GPIO_Config();

/*I2C外設(shè)初(AT24C02)始化*/

I2C_EE_Init();

printf("rn這是一個I2C外設(shè)(AT24C02)讀寫測試例程rn");

I2C_Test();

while(1)

{

}

}

/**

*@briefI2C(AT24C02)讀寫測試

*@param無

*@retval無

*/

voidI2C_Test(void)

{

u16i;

printf("寫入的數(shù)據(jù)nr");

for(i=0;i<=255;i++)//填充緩沖

{

I2c_Buf_Write[i]=i;

printf("0x%02X",I2c_Buf_Write[i]);

if(i%16==15)

printf("nr");

}

//將I2c_Buf_Write中順序遞增的數(shù)據(jù)寫入EERPOM中

//LED1(ON);

I2C_EE_BufferWrite(I2c_Buf_Write,EEP_Firstpage,256);

//LED1(OFF);

printf("nr寫成功nr");

printf("nr讀出的數(shù)據(jù)nr");

//將EEPROM讀出數(shù)據(jù)順序保持到I2c_Buf_Read中

//LED2(ON);

I2C_EE_BufferRead(I2c_Buf_Read,EEP_Firstpage,256);

//LED2(OFF);

//將I2c_Buf_Read中的數(shù)據(jù)通過串口打印

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

{

if(I2c_Buf_Read[i]!=I2c_Buf_Write[i])

{

printf("0x%02X",I2c_Buf_Read[i]);

printf("錯誤:I2CEEPROM寫入與讀出的數(shù)據(jù)不一致nr");

return;

}

printf("0x%02X",I2c_Buf_Read[i]);

if(i%16==15)

printf("nr");

}

printf("I2C(AT24C02)讀寫測試成功nr");

}

/*代碼演示-bsp_i2c_ee模塊*/

#ifndef__I2C_EE_H

#define__I2C_EE_H

#include"stm32f10x.h"

/*

*AT24C022kb=2048bit=2048/8B=256B

*32pagesof8byteseach

*

*DeviceAddress

*1010A2A1A0R/W

*10100000=0XA0

*10100001=0XA1

*/

/*EEPROMAddressesdefines*/

#defineEEPROM_Block0_ADDRESS0xA0/*E2=0*/

//#defineEEPROM_Block1_ADDRESS0xA2/*E2=0*/

//#defineEEPROM_Block2_ADDRESS0xA4/*E2=0*/

//#defineEEPROM_Block3_ADDRESS0xA6/*E2=0*/

void I2C_EE_Init

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

在嵌入式開發(fā)中,STM32的時鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點。然而,看似簡單的時鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時鐘源選擇、PLL配置、總線時鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測等場景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準算法、軟...

關(guān)鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術(shù)正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革?;赟TM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動態(tài)電壓調(diào)整(Dynam...

關(guān)鍵字: AC-DC STM32

當前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對現(xiàn)有澆花裝置缺陷進行了改進 ,設(shè)計出基于STM32單片機的全 自動家用澆花機器人。該設(shè)計主要由機械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實現(xiàn)機器...

關(guān)鍵字: STM32 麥克納姆輪 安全可靠 通過性強

用c++編程似乎是讓你的Arduino項目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復(fù)雜電子項目的創(chuàng)建變成了拖動和連接塊的簡單任務(wù)。在本文中,我們將帶您完成使...

關(guān)鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術(shù)的無線傳感網(wǎng)絡(luò)憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測、工業(yè)自動化等場景的核心解決方案。然而,如何在復(fù)雜電磁環(huán)境中實現(xiàn)高效休眠調(diào)度與動態(tài)信道優(yōu)化,成為提升網(wǎng)絡(luò)能效與可靠性的關(guān)鍵挑戰(zhàn)。本...

關(guān)鍵字: STM32 LoRa

在實時控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對時間敏感的應(yīng)用場景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

數(shù)字電源技術(shù)向高功率密度、高效率與高動態(tài)響應(yīng)方向加速演進,STM32微控制器憑借其基于DSP庫的算法加速能力與對LLC諧振變換器的精準控制架構(gòu),成為優(yōu)化電源動態(tài)性能的核心平臺。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關(guān)鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對電機控制場景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機控制領(lǐng)域的核心優(yōu)勢集中體現(xiàn)在FOC(磁場定向控制)算法的硬件加速引擎與PWM死區(qū)時間的動態(tài)補...

關(guān)鍵字: STM32 電機控制

無線充電技術(shù)加速滲透消費電子與汽車電子領(lǐng)域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設(shè)備能量補給的核心課題。傳統(tǒng)模擬控制方案存在響應(yīng)滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關(guān)鍵字: STM32 無線充電
關(guān)閉