娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月02日(星期一)

2018年06月02日 | STM32CubeMx之硬件IIC調(diào)試基本方法

發(fā)布者:太白山人 來源: eefocus關(guān)鍵字:STM32CubeMx  硬件IIC  調(diào)試 手機看文章 掃描二維碼
隨時隨地手機看文章

如題,最近在調(diào)試STM32的硬件IIC,從中發(fā)現(xiàn)了很多問題,經(jīng)過網(wǎng)上查找資料總結(jié)和實際測試,總結(jié)出如下步驟來檢測硬件IIC。 

測試環(huán)境如下: 

STM32F407開發(fā)板; 

STM32Cube固件庫F4 1.6.0 

IIC設(shè)備 AT24C02 

IIC配置如下:


void MX_I2C1_Init(void)

{


  hi2c1.Instance = I2C1;

  hi2c1.Init.ClockSpeed = 100000;

  hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;

  hi2c1.Init.OwnAddress1 = 0;

  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;

  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;

  hi2c1.Init.OwnAddress2 = 0;

  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;

  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;

  if (HAL_I2C_Init(&hi2c1) != HAL_OK)

  {

    _Error_Handler(__FILE__, __LINE__);

  }


}


1.檢查STM32Cube時鐘項配置是否正確(主要看所接入的時鐘源是否與實際時鐘源一致) 

2.檢查在完成IIC初始化后,SDA、SCL引腳是否為高電平,不是的話,要采用軟件的方式實現(xiàn),在IIC初始化代碼增加如下步驟:


void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)

{

  GPIO_InitTypeDef GPIO_InitStruct;

  if(i2cHandle->Instance==I2C1)

  {

  /* USER CODE BEGIN I2C1_MspInit 0 */


  /* USER CODE END I2C1_MspInit 0 */


    /**I2C1 GPIO Configuration    

    PB8     ------> I2C1_SCL

    PB9     ------> I2C1_SDA 

    */

    //增加代碼部分Start

    GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;

    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;

    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET);

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);


    hi2c1.Instance->CR1=I2C_CR1_SWRST;

    hi2c1.Instance->CR1=0;

    //增加代碼部分End

    GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;

    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;

    GPIO_InitStruct.Pull = GPIO_PULLUP;

    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;

    GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;

    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


......

}


若此方式還是無法解決,就可能是硬件問題了;


3.驗證硬件IIC單字節(jié)讀取是否成功,測試代碼如下:


#define ADDR_24LCxx_Write 0xA0

#define ADDR_24LCxx_Read 0xA1


uint8_t val=0;

HAL_I2C_Mem_Write(&hi2c1, ADDR_24LCxx_Write, 0, I2C_MEMADD_SIZE_8BIT,0x5A,1,0xff);

HAL_Delay(5);

HAL_I2C_Mem_Write(&hi2c1, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,&val,1,0xff);


4..驗證硬件IIC多字節(jié)字節(jié)讀取是否成功,測試代碼如下:


#define BufferSize 0x100

uint8_t WriteBuffer[BufferSize],ReadBuffer[BufferSize];

uint16_t i;



printf("\r\n***************I2C Example*******************************\r\n");

printf("WriteBuffer\r\n");

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

{

WriteBuffer[i]=256-i;    /* WriteBuffer init */

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

}


/* wrinte date to EEPROM */

for(i=0;i

{

    HAL_I2C_Mem_Write(&hi2c1, ADDR_24LCxx_Write, i, I2C_MEMADD_SIZE_8BIT,&WriteBuffer[i],1,0xff);//使用I2C塊讀,出錯。因此采用此種方式,逐個單字節(jié)寫入

  HAL_Delay(5);//此處延時必加,與AT24C02寫時序有關(guān)

}

printf("\r\n EEPROM 24C02 Write Test OK \r\n");


HAL_I2C_Mem_Read(&hi2c1, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,ReadBuffer,BufferSize,0xff);


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

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


if(memcmp(WriteBuffer,ReadBuffer,BufferSize) == 0 ) /* check date */

printf("\r\n EEPROM 24C02 Read Test OK\r\n");

else

printf("\r\n EEPROM 24C02 Read Test False\r\n");

AT24C02寫時序如下: 
這里寫圖片描述
其中twr為兩次寫入的時間間隔,其間隔最大為5ms;

至此,硬件IIC的使用完成;不管硬件IIC采用何種形式(DMA,IT),都要確保兩次寫入的間隔大于5ms;


關(guān)鍵字:STM32CubeMx  硬件IIC  調(diào)試 引用地址:STM32CubeMx之硬件IIC調(diào)試基本方法

上一篇:關(guān)于STM32的HAL庫硬件I2C簡單調(diào)試
下一篇:stm32 hal i2c 庫讀寫sd3088時鐘

推薦閱讀

硅智財權(quán)(IP)大廠安謀(ARM)搶在 Computex Taipei 2018 開幕前,于 1 日一口氣發(fā)表了 3 款針對處理器的 Cortex-A76、繪圖芯片的 Mali-G76、視訊編譯碼處理的 Mali-V76 的硅智財權(quán)產(chǎn)品。其中最受關(guān)切的,就是針對 Windows 操作系統(tǒng)的平板或筆記本電腦而來的 Cortex-A76。這顯示 ARM 可為 Windows 操作系統(tǒng)下的設(shè)備提供更好效能的處理...
清潔、物流、陪伴……機器人正在越來越多地應(yīng)用在人們的日常生活中。如今,在北京的民警基層工作中也將出現(xiàn)機器人的身影。未來,當(dāng)你走在北京各個地區(qū)的公安服務(wù)大廳、派出所,將可以看到警務(wù)機器人在24小時無人警務(wù)室值守,在公安服務(wù)大廳幫助市民咨詢和引導(dǎo)辦理戶政業(yè)務(wù)、出入境業(yè)務(wù)。在室外的小區(qū)、園區(qū)中,也將能看到和警車配色相近的機器人進行巡邏...
東芝電子元件及存儲裝置株式會社(“東芝”)今日宣布,面向車載信息娛樂(IVI)系統(tǒng)推出兩款新型橋接IC-“TC9594XBG”和“TC9595XBG”,它們將進一步壯大東芝顯示器橋接IC的產(chǎn)品陣容,并將于本月開始出貨。 TC9594XBG產(chǎn)品示意圖 由于車載IVI系統(tǒng)的日益復(fù)雜化,所集成的顯示器數(shù)量不斷增多,顯示器面板的選擇也越來越多,已經(jīng)超出了被廣泛使用的LVD...
簡介:課本上學(xué)到的外部存儲器操作基本上都是用匯編語言實現(xiàn)的,但是在實際工作中,大都用C語言編寫單片機的程序,那么對外部存儲器的操作就不僅僅是給一個普通變量賦值那樣子了。簡單地說,注意兩個方面:軟件部分:1.添加頭文件#include2.在需要讀寫的地方用XBYTE就行,具體做法如下:比如要訪問0xA0B0這個地址(讀數(shù)據(jù)):變量名=XBYTE[0xA0B0]就行反過...

史海拾趣

問答坊 | AI 解惑

現(xiàn)在流行什么CPLD芯片?

現(xiàn)在流行什么CPLD芯片?感覺epm7128太老了,新一點又適合初學(xué)者的,有哪些幫忙推薦一下吧!…

查看全部問答∨

移動醫(yī)療服務(wù)系統(tǒng)中的前置放大器設(shè)計與實現(xiàn)

各種生物信號都屬于低頻的微弱自然信號,為了高精度,高速度地檢測出背景噪聲覆蓋的微弱生物信號,高質(zhì)量的前置放大器中一般都使用了低噪聲運放。由于低噪聲運放性能有別于普通運放,因而必須依據(jù)有關(guān)的噪聲理論對低噪聲運放進行分析和討論,才能達(dá)到預(yù) ...…

查看全部問答∨

ARM學(xué)習(xí)之必備-基礎(chǔ)教程

ARM學(xué)習(xí)之必備-基礎(chǔ)教程…

查看全部問答∨

基于LabVIEW 的數(shù)據(jù)采集與處理軟件編程技巧

基于LabVIEW 的數(shù)據(jù)采集與處理軟件編程技巧(石家莊鐵道學(xué)院)燕延 馬增強 楊明 摘要: 針對基于LabVIEW 平臺的數(shù)據(jù)采集和數(shù)據(jù)處理程序設(shè)計中.常遇到的典型應(yīng)用中的問題如:基于TCP的網(wǎng)絡(luò)傳輸、軟件濾波、數(shù)組組合、波形振幅統(tǒng)計、超限報警等問題 ...…

查看全部問答∨

圖解半球攝像機內(nèi)部結(jié)構(gòu)

半球攝像機組成如下圖:主電路板、鏡頭及鏡頭輔件、安裝支架、護罩及外殼; 第一步:將鏡頭組件安裝到主板上,用鏍絲固定;(注意,這個鏡頭組件還可以拆開分為支架和鏡頭) 第二步:安裝支架,固定主板;安裝鏡頭上的橡皮圈(圖一中有橡皮圈 ...…

查看全部問答∨

s3c2440 USBD中斷如何產(chǎn)生

s3c2440(s3c2410 s3c2443等也一樣) 中斷控制里有個INT_USBD中斷 正常情況下,USB插入后會產(chǎn)生這個中斷,這個中斷是判斷什么而產(chǎn)生的呢? 看了一下 文檔里沒有寫的很詳細(xì)的,有了解的人嗎? …

查看全部問答∨

初學(xué)ARM 要做一個汽車安全系統(tǒng) 大家 給點建議

初學(xué)ARM  現(xiàn)在學(xué)的  不明不白   本人 已大三 電子專業(yè)  大一大二 渾渾噩噩,沒學(xué)什么東西,對單片機也很馬虎,毫無基礎(chǔ)可言,今年參加了一個比賽 自己想了好久的題目 也沒想出來,指導(dǎo)老師幫著想了一個, ...…

查看全部問答∨

關(guān)于格式化SD卡的問題

從網(wǎng)上找了一段格式化SD卡的sourcecode,可是執(zhí)行到DismountPartition的時候總是會失敗,這句的作用是什么,英文看的不是很明白…

查看全部問答∨

Quartues 2 仿真teshbench竟然出現(xiàn)了問題

在QUARYUS2 ->TOOL->RUN EDA SIMULATION TOOL 后 運行ModelSim 6.5出現(xiàn)如下報錯。希望高手指教。Q385157936For example, ModelSim may display the following error message:# ** Error: (vsim-19) Failed to access library \'work\ ...…

查看全部問答∨

初學(xué)求教OSTimeDly(1);關(guān)于延時方面的問題

初學(xué)ucos,一直摸不到門道,不知道如何學(xué)好,學(xué)習(xí)了一周了一直沒有什么進展,盡管也理解了一些東西,但是一直不明白ucos是怎樣來調(diào)度任務(wù),就拿我剛下載的一個移植程序來說吧,一直不懂任務(wù)怎么跑的,還請萬能的論壇能幫幫我,有那位朋友有ucos群的 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 常德市| 云和县| 柏乡县| 鱼台县| 巫山县| 涟水县| 瓦房店市| 乐亭县| 灵山县| 登封市| 喀什市| 西贡区| 阜南县| 香河县| 额敏县| 凤阳县| 海安县| 濉溪县| 太保市| 瓮安县| 体育| 安溪县| 南京市| 抚松县| 阳谷县| 旺苍县| 尼木县| 五河县| 文水县| 娄烦县| 运城市| 海阳市| 衡阳市| 惠水县| 东安县| 拉萨市| 德清县| 买车| 当雄县| 伊川县| 女性|