0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的IIC庫(kù)函數(shù)使用誤區(qū)

CHANBAEK ? 來(lái)源:嵌入式隨筆 ? 作者:嵌入式隨筆 ? 2023-10-17 16:56 ? 次閱讀

HAL庫(kù)里有很多的IIC的庫(kù)函數(shù),比如

HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)
HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)
HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)
HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size);
HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size)等

這些函數(shù)參數(shù)需要使用發(fā)送的器件地址,數(shù)據(jù)地址和數(shù)據(jù)長(zhǎng)度。具體的器件地址需要查詢(xún)數(shù)據(jù)手冊(cè)。很多原理圖會(huì)標(biāo)記出器件的地址(七位地址),如果不看手冊(cè),直接使用此地址進(jìn)行讀寫(xiě)的話(huà)往往是不行的。

這里的地址一般使用的是八位地址,IIC的器件手冊(cè)給的一般是七位地址比如下兩個(gè)圖的A2A1A0如果全都為0,七位地址就是1110000=0x70;

圖片

圖片

但是根據(jù)讀寫(xiě)要將此地址左移一位,然后最低位賦值0或者1。此例子中,讀地址為11100001=0xE1;

寫(xiě)地址為11100000=0xE0。使用庫(kù)函數(shù)的時(shí)候要使用這兩個(gè)地址,不要直接使用0x70這個(gè)地址。

以此地址為例可以進(jìn)行如下讀寫(xiě)。

寫(xiě):
HAL_I2C_Master_Transmit_IT(&hi2c1,0xE0, Pointer_Register,1);
while (HAL_I2C_GetState(&hi2c1) != HAL_I2C_STATE_READY)
{
  ;
}
讀:
HAL_I2C_Master_Receive_IT(&hi2c1, 0xE1, pData,1);
while (HAL_I2C_GetState(&hi2c1) != HAL_I2C_STATE_READY)
{
  ;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354289
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    298

    瀏覽量

    38241
  • 庫(kù)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    177

    瀏覽量

    33940
  • HAL庫(kù)
    +關(guān)注

    關(guān)注

    1

    文章

    114

    瀏覽量

    6144
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32庫(kù)函數(shù)—點(diǎn)燈實(shí)驗(yàn)_實(shí)驗(yàn)三

    概述: 從最簡(jiǎn)單的“點(diǎn)燈”實(shí)驗(yàn)入手,涉及到STM32的最基礎(chǔ)最簡(jiǎn)單的操作。 實(shí)驗(yàn)?zāi)康模? 本實(shí)驗(yàn)的目的很簡(jiǎn)單,就是讓LED亮起來(lái),并閃爍。 通過(guò)實(shí)驗(yàn)了解STM32固件函數(shù)庫(kù)的使用方法。 本實(shí)驗(yàn)用到以下4個(gè)
    發(fā)表于 02-22 15:45 ?11次下載

    stm32庫(kù)函數(shù)解釋

    庫(kù)函數(shù)的詳細(xì)介紹,很實(shí)用,本人菜鳥(niǎo),正在慢慢學(xué)習(xí)。
    發(fā)表于 05-06 15:06 ?16次下載

    STM32庫(kù)函數(shù)代碼自動(dòng)生成器V1.2

    stm32庫(kù)函數(shù)代碼自動(dòng)生成器是STM32學(xué)習(xí)的小工具。 stm32庫(kù)函數(shù)代碼自動(dòng)生成器可以根據(jù)你的配置生成相應(yīng)的
    發(fā)表于 06-17 17:55 ?0次下載

    STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版

    STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版,感興趣的可以看看。
    發(fā)表于 07-13 16:55 ?0次下載

    STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版

    STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版 STM32庫(kù)函數(shù)代碼自動(dòng)生成器正式版
    發(fā)表于 07-25 18:52 ?0次下載

    STM32F10X庫(kù)函數(shù)合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F10x庫(kù)函數(shù)合集免費(fèi)下載。
    發(fā)表于 10-15 08:00 ?27次下載
    <b class='flag-5'>STM32</b>F10X<b class='flag-5'>庫(kù)函數(shù)</b>合集免費(fèi)下載

    STM32 IAR的庫(kù)函數(shù)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32 IAR的庫(kù)函數(shù)資料免費(fèi)下載。
    發(fā)表于 03-27 09:48 ?43次下載
    <b class='flag-5'>STM32</b> IAR的<b class='flag-5'>庫(kù)函數(shù)</b>資料免費(fèi)下載

    STM32的標(biāo)準(zhǔn)例程庫(kù)函數(shù)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32的標(biāo)準(zhǔn)例程庫(kù)函數(shù)資料合集免費(fèi)下載。
    發(fā)表于 12-28 08:00 ?31次下載

    STM32F4 HAL庫(kù)函數(shù)說(shuō)明下載

    STM32F4 HAL庫(kù)函數(shù)說(shuō)明下載
    發(fā)表于 05-26 09:27 ?75次下載

    stm32下標(biāo)準(zhǔn)庫(kù)函數(shù)與HAL庫(kù)函數(shù)編程方式的差異

    stm32下標(biāo)準(zhǔn)庫(kù)函數(shù)與HAL庫(kù)函數(shù)編程方式的差異標(biāo)準(zhǔn)庫(kù)函數(shù)HAL庫(kù)函數(shù)標(biāo)準(zhǔn)庫(kù)函數(shù)與HAL
    發(fā)表于 12-09 14:21 ?15次下載
    <b class='flag-5'>stm32</b>下標(biāo)準(zhǔn)<b class='flag-5'>庫(kù)函數(shù)</b>與HAL<b class='flag-5'>庫(kù)函數(shù)</b>編程方式的差異

    基于標(biāo)準(zhǔn)庫(kù)函數(shù)與基于HAL庫(kù)函數(shù)stm32編程方式對(duì)比

    以實(shí)例程序(串口通信),分析基于標(biāo)準(zhǔn)庫(kù)函數(shù)與基于HAL庫(kù)函數(shù)stm32編程方式的差異一、基于標(biāo)準(zhǔn)庫(kù)函數(shù)stm32編程方式二、基于HAL
    發(fā)表于 12-28 19:09 ?30次下載
    基于標(biāo)準(zhǔn)<b class='flag-5'>庫(kù)函數(shù)</b>與基于HAL<b class='flag-5'>庫(kù)函數(shù)</b>的<b class='flag-5'>stm32</b>編程方式對(duì)比

    STM32庫(kù)函數(shù)開(kāi)發(fā)-GPIO

    2021-01-11 學(xué)習(xí)日志STM32f1庫(kù)函數(shù)開(kāi)發(fā)學(xué)習(xí)實(shí)戰(zhàn)一 · I/O口1. 文件夾結(jié)構(gòu)2. 配置細(xì)節(jié) · 從寄存器到庫(kù)函數(shù)3. 跑馬燈4. 按鍵輸入STM32f1
    發(fā)表于 01-13 16:17 ?14次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>庫(kù)函數(shù)</b>開(kāi)發(fā)-GPIO

    STM32F103使用(3.5)庫(kù)函數(shù)新建工程

    意法半導(dǎo)體的STM32系列都支持庫(kù)函數(shù)編程,庫(kù)函數(shù)比常規(guī)的寄存器方式編程更加好移植,特別是項(xiàng)目需要在幾個(gè)系列芯片上移植,使用庫(kù)函數(shù)編程,底層的配置都不用改。而業(yè)務(wù)邏輯本身就是通用的,所
    的頭像 發(fā)表于 05-28 14:00 ?3462次閱讀
    <b class='flag-5'>STM32</b>F103使用(3.5)<b class='flag-5'>庫(kù)函數(shù)</b>新建工程

    CH32和stm32庫(kù)函數(shù)一樣嗎?

    CH32和stm32庫(kù)函數(shù)一樣嗎? STM32是ST公司推出的一款32位微控制器,其擁有強(qiáng)大的性能及豐富的外設(shè)功能,實(shí)現(xiàn)了嵌入式應(yīng)用的功能。而在STM32的開(kāi)發(fā)中,
    的頭像 發(fā)表于 08-16 11:15 ?938次閱讀

    STM32庫(kù)函數(shù)SystemInit()詳解

    STM32庫(kù)函數(shù)SystemInit()詳解
    的頭像 發(fā)表于 09-18 15:45 ?3757次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>庫(kù)函數(shù)</b>SystemInit()詳解