18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

STM32G0開發(fā)筆記:EEPROM M24C02的使用方法

CHANBAEK ? 來源:電子技術(shù)攻城獅 ? 作者:MakerInChina.cn ? 2023-01-16 15:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為EEPROM M24C02的使用方法。

1 新建項(xiàng)目

  • 建立eeprom項(xiàng)目

PIO的Home頁面新建項(xiàng)目,項(xiàng)目名稱eeprom,選擇開發(fā)板為 MonkeyPi_STM32_G070RB,開發(fā)框架選擇libopencm3;

  • 項(xiàng)目建立完成后在src目錄下新建main.c主程序文件;
  • 修改下載和調(diào)試方式,這里開發(fā)板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
1upload_protocol = cmsis-dap
2debug_tool = cmsis-dap

2 編寫程序

首先從之前的I2C項(xiàng)目中拷貝sw_i2c庫文件夾到當(dāng)前項(xiàng)目的lib目錄下:

image-20220925192507020

本次不使用串口打印,直接使用SEGGER rtt打印,因此將SEGGER RTT也放置在lib目錄下,便于調(diào)試打?。?/p>

1void log(const char* fmt, ...)
2{
3    va_list va;
4    va_start(va, fmt);
5    SEGGER_RTT_vprintf(0,fmt,&va);
6    va_end(va);
7}
2.1 EEPROM 寫數(shù)據(jù)
1static inline bool m24cxx_write_one_byte(uint8_t addr, uint8_t data)
2{
3    uint8_t buffer[2];
4
5    buffer[0] = addr;
6    buffer[1] = data;
7    return sw_i2c_transfer(M24CXX_DEVICE_ADDR, buffer, 2, 0, 0);
8}
2.2 EEPROM 讀數(shù)據(jù)
1static inline bool m24cxx_read_one_byte(uint8_t addr, uint8_t *ptr)
2{
3    return sw_i2c_transfer(M24CXX_DEVICE_ADDR, &addr, 1, ptr, 1);
4}

3 連接硬件進(jìn)行測試

將EEPROM模塊與開發(fā)的I2C引腳連接好:

image-20220925192735228

先執(zhí)行程序進(jìn)行寫入:

1int main(void)
 2{
 3    sys_clock_setup();
 4
 5    log("init sw i2c.\\r\\n");
 6
 7    sw_i2c_init();
 8
 9    log("eeprom read testing.\\r\\n");
10
11    uint8_t addr = 0x01;
12    uint8_t read_data=0;
13    uint8_t write_data = 0x88;
14
15    #if 0
16        m24cxx_read_one_byte(addr,&read_data);
17
18        if(read_data == write_data){
19            log("eeprom write ok\\r\\n");
20        }else{
21            log("ERR:EEPROM write failed.\\r\\n");
22        }
23
24    #endif
25
26    log("eeprom write.\\r\\n");
27
28    m24cxx_write_one_byte(addr, write_data);
29
30    delay_ms(5);//wait write done
31
32    while(1){/*do nothing*/}///!!!not go here.
33    return 0;
34}

然后將讀取部分的程序注釋打開:

1    #if 1
 2        m24cxx_read_one_byte(addr,&read_data);
 3
 4        if(read_data == write_data){
 5            log("eeprom write ok\\r\\n");
 6        }else{
 7            log("ERR:EEPROM write failed.\\r\\n");
 8        }
 9
10    #endif

將開發(fā)板斷電后重新上電可以看到測試正確:

image-20220927211659396

注:寫入數(shù)據(jù)根據(jù)M24C02的數(shù)據(jù)手冊(cè),其 Write time 為5ms,因此寫入后要進(jìn)行等待其寫入完成。

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

    關(guān)注

    2301

    文章

    11096

    瀏覽量

    369997
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1045

    瀏覽量

    86542
  • EEPROM
    +關(guān)注

    關(guān)注

    9

    文章

    1109

    瀏覽量

    85253
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1599

    瀏覽量

    81578
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    6027

    瀏覽量

    110731
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    幫忙解釋下M24C02 PRE腳是干什么用的!

    ST M24C02 PRE腳是干什么用的?我這樣對(duì)嗎?地址A0。用at24c02 程序讀寫都沒問題,但是用M24C02地址都寫不進(jìn)去。M24C02
    發(fā)表于 02-06 15:38

    STM32G0開發(fā)筆記:FreeRTOS和FreeModbus庫使用

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和FreeModbus庫使用。
    的頭像 發(fā)表于 01-16 14:44 ?7503次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:FreeRTOS和FreeModbus庫使用

    STM32G0開發(fā)筆記:FreeRTOS和CLI組件使用

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和CLI組件使用。
    的頭像 發(fā)表于 01-16 14:47 ?5013次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:FreeRTOS和CLI組件使用

    STM32G0開發(fā)筆記:使用FreeRTOS系統(tǒng)的隊(duì)列Queue

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為使用FreeRTOS系統(tǒng)的隊(duì)列Queue。
    的頭像 發(fā)表于 01-16 14:50 ?2127次閱讀

    STM32G0開發(fā)筆記:使用FreeRTOS系統(tǒng)

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為使用FreeRTOS系統(tǒng)。
    的頭像 發(fā)表于 01-16 15:07 ?3474次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:使用FreeRTOS系統(tǒng)

    STM32G0開發(fā)筆記:使用ADC進(jìn)行NTC溫度采集

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下使用ADC進(jìn)行NTC溫度采集。
    的頭像 發(fā)表于 01-16 15:12 ?1.2w次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:使用ADC進(jìn)行NTC溫度采集

    STM32G0開發(fā)筆記:用PWM來實(shí)現(xiàn)LED呼吸燈效果

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,下面使用PWM來實(shí)現(xiàn)LED呼吸燈效果。
    的頭像 發(fā)表于 01-16 15:15 ?3004次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:用PWM來實(shí)現(xiàn)LED呼吸燈效果

    STM32G0開發(fā)筆記:SD卡模塊的使用方法

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,下面介紹SD卡模塊的使用方法。
    的頭像 發(fā)表于 01-19 16:27 ?3083次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:SD卡模塊的<b class='flag-5'>使用方法</b>

    STM32G0開發(fā)筆記:SPI接口的基本使用

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,下面介紹SPI接口的基本使用。
    的頭像 發(fā)表于 01-17 10:38 ?4042次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:SPI接口的基本使用

    STM32G0開發(fā)筆記:多通道ADC與DMA的使用

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為多通道ADC與DMA的使用。
    的頭像 發(fā)表于 01-17 10:41 ?8365次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:多通道ADC與DMA的使用

    STM32G0開發(fā)筆記:定時(shí)器timer的基本使用方法

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為定時(shí)器timer的基本使用方法。
    的頭像 發(fā)表于 01-17 10:43 ?4764次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:定時(shí)器timer的基本<b class='flag-5'>使用方法</b>

    STM32G0開發(fā)筆記:串口中斷的使用

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為串口中斷的使用。
    的頭像 發(fā)表于 01-17 10:46 ?3133次閱讀

    STM32G0開發(fā)筆記:GPIO接按鍵的使用方式

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為GPIO接按鍵的使用方式。
    的頭像 發(fā)表于 01-17 10:48 ?2479次閱讀

    STM32G0開發(fā)筆記:LED燈示例

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為LED燈示例。
    的頭像 發(fā)表于 01-17 10:52 ?1996次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:LED燈示例

    STM32G0開發(fā)筆記:使用libopencm3庫

    使用Platformio平臺(tái)的libopencm3開發(fā)框架來開發(fā)STM32G0,開發(fā)環(huán)境為VSCode+PIO插件,這里以開發(fā)
    的頭像 發(fā)表于 01-17 10:56 ?2997次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:使用libopencm3庫