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

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

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

EEPROM:電可擦可編程只讀存儲(chǔ)器。

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

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

typedef struct
{
uint32_t I2C_ClockSpeed; /*!< 指定時(shí)鐘總線(xiàn)速率,100/400kHz */
uint16_t I2C_Mode; /*!< 指定為I2C通信模式 */
uint16_t I2C_DutyCycle; /*!< 指定I2C快速模式 */
uint16_t I2C_OwnAddress1; /*!< 指定從設(shè)備自身地址,7/10bit(地址0x0A對(duì)應(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
時(shí)鐘。
(2) 寫(xiě):
1) 檢測(cè) SDA 是否空閑;
2) 按 I2C 協(xié)議發(fā)出起始信號(hào);
3) 發(fā)出 7 位器件地址和寫(xiě)模式;
4) 要寫(xiě)入的存儲(chǔ)區(qū)首地址;
5) 用頁(yè)寫(xiě)入方式或字節(jié)寫(xiě)入方式寫(xiě)入數(shù)據(jù);
6) 發(fā)送 I2C 通訊結(jié)束訊信號(hào)
每個(gè)操作之后要檢測(cè)“事件”確定是否成功。寫(xiě)完后檢測(cè) EEPROM 是否進(jìn)
入 standby 狀態(tài)。
(3) 讀:
1) 檢測(cè) SDA 是否空閑;
2) 按 I2C 協(xié)議發(fā)出起始訊號(hào);
3) 發(fā)出 7 位器件地址和寫(xiě)模式(偽寫(xiě));
4) 發(fā)出要讀取的存儲(chǔ)區(qū)首地址;
5) 重發(fā)起始訊號(hào);第 260 頁(yè) 共 729 頁(yè)
6) 發(fā)出 7 位器件地址和讀模式;
7) 接收數(shù)據(jù);
類(lèi)似寫(xiě)操作,每個(gè)操作之后要檢測(cè)“事件”確定是否成功。

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

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

/**

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

*@filemain.c

*@authorfire

*@versionV1.0

*@date2013-xx-xx

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

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

*/

#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無(wú)

*@retval無(wú)

*/

intmain(void)

{

/*串口1初始化*/

USART1_Config();

printf("rn這是一個(gè)I2C外設(shè)(AT24C02)讀寫(xiě)測(cè)試?yán)蘲n");

//LED_GPIO_Config();

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

I2C_EE_Init();

printf("rn這是一個(gè)I2C外設(shè)(AT24C02)讀寫(xiě)測(cè)試?yán)蘲n");

I2C_Test();

while(1)

{

}

}

/**

*@briefI2C(AT24C02)讀寫(xiě)測(cè)試

*@param無(wú)

*@retval無(wú)

*/

voidI2C_Test(void)

{

u16i;

printf("寫(xiě)入的數(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ù)寫(xiě)入EERPOM中

//LED1(ON);

I2C_EE_BufferWrite(I2c_Buf_Write,EEP_Firstpage,256);

//LED1(OFF);

printf("nr寫(xiě)成功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ù)通過(guò)串口打印

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

{

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

{

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

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

return;

}

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

if(i%16==15)

printf("nr");

}

printf("I2C(AT24C02)讀寫(xiě)測(cè)試成功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)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

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

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

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

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

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

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

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

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

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

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

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

關(guān)鍵字: STM32 LoRa

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

關(guān)鍵字: STM32 DMA

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

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

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

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

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

關(guān)鍵字: STM32 無(wú)線(xiàn)充電
關(guān)閉