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

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

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

復(fù)旦微FM33LG048軟件I2C驅(qū)動(dòng)OLED的demo 幫助新手快速?gòu)腟TM32上手FM33

大大通 ? 2023-11-11 08:27 ? 次閱讀

demo任務(wù):利用復(fù)旦微FM33LG048外設(shè)I2C驅(qū)動(dòng)OLED顯示

demo目的:通過demo熟悉復(fù)旦微的I2C、GPIO外設(shè),幫助復(fù)旦微的新學(xué)習(xí)者快速了解復(fù)旦微庫(kù)函數(shù)

demo設(shè)備:MCU——FM33LG048;OLED——四針腳OLED,型號(hào):JMD096D.

移植教程

#include "main.h"

#include "fm33_assert.h"

#include "OLED.h"

/*********************************************主函數(shù)*******************************************/

int main(void)

{

/* Initialize FL Driver Library */

FL_Init();

/* Configure the system clock */

MF_Clock_Init();

OLED_Init(); // 初始化OLED

OLED_ShowString(2,1,"hello"); //顯示hello字符串

}

FL_Init();在復(fù)旦微官方例程中已經(jīng)給出,未修改任何代碼,故這里不再贅述。

MF_Clock_Init();主要用于初始化各外設(shè)以及配置系統(tǒng)時(shí)鐘,需要注意,為了方便移植OLED,將MF_Clock_Init()中GPIO初始化相關(guān)代碼移動(dòng)到OLED.c文件中。

demo所用函數(shù)如下,直觀展示了與SMT32的對(duì)比,方便新手快速?gòu)腟MT32入手復(fù)旦微FM33。

/******************************************************復(fù)旦微GPIO初始化************************************************************************************/

void MF_I2C_MASTER_Init(void)void MF_I2C_MASTER_Init(void)

{

FL_GPIO_InitTypeDef GPIO_InitStruct;

FL_I2C_MasterMode_InitTypeDef I2C_InitStruct;

/* PA11 I2C_SCL */

GPIO_InitStruct.pin = FL_GPIO_PIN_11;

GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;

GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;

GPIO_InitStruct.pull = FL_DISABLE;

GPIO_InitStruct.remapPin = FL_DISABLE;

GPIO_InitStruct.analogSwitch = FL_DISABLE;

FL_GPIO_Init(GPIOA, &GPIO_InitStruct);

/* PA12 I2C_SDA */

GPIO_InitStruct.pin = FL_GPIO_PIN_12;

GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;

GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;

GPIO_InitStruct.pull = FL_DISABLE;

GPIO_InitStruct.remapPin = FL_DISABLE;

GPIO_InitStruct.analogSwitch = FL_DISABLE;

FL_GPIO_Init(GPIOA, &GPIO_InitStruct);

I2C_InitStruct.clockSource = FL_CMU_I2C_CLK_SOURCE_RCHF;

I2C_InitStruct.baudRate = 100000;

FL_I2C_MasterMode_Init(I2C, &I2C_InitStruct); }

以下是STM32的GPIO初始化

/*****************************************************SMT32 GPIO初始化**********************************************/

void OLED_I2C_Init(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_Init(GPIOB, &GPIO_InitStructure);

OLED_W_SCL(1);

OLED_W_SDA(1);

}

需要注意,在復(fù)旦微庫(kù)函數(shù)中,沒有STM32的GPIO_WriteBit(*GPIOx,GPIO_Pin_x,Value)對(duì)應(yīng)的庫(kù)函數(shù),需要自己封裝。

以下給出兩者代碼不同之處

/**************************************STM32向特定引腳寫入0,1數(shù)據(jù)********************************************/

#define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x))

#define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))

BitAction為枚舉類型,只能是0或1

/*************************************復(fù)旦微向特定引腳寫入0,1數(shù)據(jù)*********************************************/

void OLED_W_SCL(uint8_t x)

{ if(x==0)

{ FL_GPIO_ResetOutputPin(GPIOA,FL_GPIO_PIN_11); }

else

{ FL_GPIO_SetOutputPin(GPIOA,FL_GPIO_PIN_11); } }

void OLED_W_SDA(uint8_t x)

{ if(x==0)

{ FL_GPIO_ResetOutputPin(GPIOA,FL_GPIO_PIN_12); }

else

{ FL_GPIO_SetOutputPin(GPIOA,FL_GPIO_PIN_12); }}

完整代碼在附件。

其他部分復(fù)旦微FM33與SMT32高度類似,不再展示。

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

    關(guān)注

    119

    文章

    6171

    瀏覽量

    223681
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354293
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1477

    瀏覽量

    123055
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1188

    瀏覽量

    51834
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    復(fù)旦榮獲ISO26262:2018功能安全ASIL B產(chǎn)品認(rèn)證證書

    2024年10月29日,上海復(fù)旦微電子集團(tuán)股份有限公司(簡(jiǎn)稱:“復(fù)旦”)榮獲ISO26262:2018功能安全產(chǎn)品認(rèn)證證書(ASILB等級(jí))。這標(biāo)志著復(fù)旦
    的頭像 發(fā)表于 11-08 01:06 ?74次閱讀
    <b class='flag-5'>復(fù)旦</b><b class='flag-5'>微</b>榮獲ISO26262:2018功能安全ASIL B產(chǎn)品認(rèn)證證書

    RISC V的I2C操作

    。tsuData中,1代表10ns;Timeout中,1表示10nstLow和tHigh的1代表10ns10.1.3 軟件部分(Risc V)l? I2C通信主要包括以下幾個(gè)部分:1、主設(shè)備發(fā)送起始位(Start
    的頭像 發(fā)表于 11-01 11:06 ?89次閱讀

    昂科燒錄器支持FuDanWei復(fù)旦微電子的低功耗微控制器FM33FR024

    芯片燒錄行業(yè)領(lǐng)導(dǎo)者-昂科技術(shù)近日發(fā)布最新的燒錄軟件更新及新增支持的芯片型號(hào)列表,其中FuDanWei復(fù)旦微電子的低功耗微控制器FM33FR024已經(jīng)被昂科的通用燒錄平臺(tái)AP8000所支持
    的頭像 發(fā)表于 10-12 11:29 ?207次閱讀
    昂科燒錄器支持FuDanWei<b class='flag-5'>復(fù)旦</b>微電子的低功耗微控制器<b class='flag-5'>FM33</b>FR024

    TCA9617A電平轉(zhuǎn)換FM+ I2C總線中繼器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TCA9617A電平轉(zhuǎn)換FM+ I2C總線中繼器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-02 09:46 ?0次下載
    TCA9617A電平轉(zhuǎn)換<b class='flag-5'>FM</b>+ <b class='flag-5'>I2C</b>總線中繼器數(shù)據(jù)表

    TCA9617B電平轉(zhuǎn)換FM+I2C總線中繼器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TCA9617B電平轉(zhuǎn)換FM+I2C總線中繼器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-19 09:56 ?0次下載
    TCA9617B電平轉(zhuǎn)換<b class='flag-5'>FM+I2C</b>總線中繼器數(shù)據(jù)表

    賽普拉斯 Cypress 品牌 CY7C1021DV33-10ZSXIT

    63813-SXC CY8C4247LQI-BL483 FM31256-GTR CY7C1041DV33-10ZSXI CY8C21534-24PVXI CY8
    發(fā)表于 04-20 16:47

    GD32 MCU硬件I2C不可靠不如軟件I2C?來看看紅楓派開發(fā)版的硬件I2C驅(qū)動(dòng)如何做到穩(wěn)得一批

    在一個(gè)評(píng)論中,看到網(wǎng)友對(duì)硬件I2C的討論,硬件I2C Busy找不到原因、軟件I2C穩(wěn)得一批。
    的頭像 發(fā)表于 02-23 09:37 ?2550次閱讀
    GD32 MCU硬件<b class='flag-5'>I2C</b>不可靠不如<b class='flag-5'>軟件</b><b class='flag-5'>I2C</b>?來看看紅楓派開發(fā)版的硬件<b class='flag-5'>I2C</b><b class='flag-5'>驅(qū)動(dòng)</b>如何做到穩(wěn)得一批

    基于FM33LF015的空調(diào)內(nèi)機(jī)主變一體方案

    風(fēng)機(jī)電機(jī)上均采用智能化變頻控制,實(shí)現(xiàn)節(jié)能水平和整機(jī)性能的更優(yōu)異表現(xiàn)。復(fù)旦推出的基于FM33LF015的空調(diào)內(nèi)機(jī)主變一體方案,可實(shí)現(xiàn)室內(nèi)機(jī)主控功能和室內(nèi)機(jī)變頻風(fēng)機(jī)的
    的頭像 發(fā)表于 02-19 12:33 ?624次閱讀
    基于<b class='flag-5'>FM33</b>LF015的空調(diào)內(nèi)機(jī)主變一體方案

    FM33FT0A系列車用MCU芯片產(chǎn)品說明書

    電子發(fā)燒友網(wǎng)站提供《FM33FT0A系列車用MCU芯片產(chǎn)品說明書.pdf》資料免費(fèi)下載
    發(fā)表于 02-18 10:17 ?3次下載

    復(fù)旦MCU 電機(jī)應(yīng)用 | 基于FM33LF0xx系列的線性驅(qū)動(dòng)應(yīng)用

    復(fù)旦MCU電機(jī)應(yīng)用|基于FM33LF0xx系列線性驅(qū)動(dòng)應(yīng)用-電動(dòng)床前言線性驅(qū)動(dòng)作為電動(dòng)執(zhí)行器在智能家居、智慧辦公、汽車部件、醫(yī)療器械、工業(yè)
    的頭像 發(fā)表于 01-20 08:28 ?875次閱讀
    <b class='flag-5'>復(fù)旦</b><b class='flag-5'>微</b>MCU 電機(jī)應(yīng)用 | 基于<b class='flag-5'>FM33</b>LF0xx系列的線性<b class='flag-5'>驅(qū)動(dòng)</b>應(yīng)用

    stm32 I2c硬件驅(qū)動(dòng)程序不穩(wěn)定該怎么解決?

    stm32 I2c硬件驅(qū)動(dòng)程序不穩(wěn)定該怎么解決? stm32I2C 硬件驅(qū)動(dòng)程序不穩(wěn)定可能
    的頭像 發(fā)表于 01-16 17:11 ?2709次閱讀

    復(fù)旦汽車MCU團(tuán)隊(duì)推出觸摸閱讀燈參考設(shè)計(jì)

    廣泛應(yīng)用在中控面板、方向盤開關(guān)、電容觸摸門把手、側(cè)壁燈、閱讀頂燈等觸摸場(chǎng)景。為幫助客戶快速縮短開發(fā)周期,復(fù)旦基于FM33FT0xxA系列汽
    的頭像 發(fā)表于 12-28 08:28 ?643次閱讀
    <b class='flag-5'>復(fù)旦</b><b class='flag-5'>微</b>汽車MCU團(tuán)隊(duì)推出觸摸閱讀燈參考設(shè)計(jì)

    I2C總線簡(jiǎn)介和主要參數(shù)講解

    Mbit/s。 超快速模式是一種單向模式,數(shù)據(jù)傳輸速度高達(dá) 5 Mbit/s。以下內(nèi)容主要討論在標(biāo)準(zhǔn)模式和快速模式下I2C硬件設(shè)計(jì)的注意事項(xiàng)。
    的頭像 發(fā)表于 12-04 14:02 ?1766次閱讀
    <b class='flag-5'>I2C</b>總線簡(jiǎn)介和主要參數(shù)講解

    即插即用!復(fù)旦和利爾達(dá)聯(lián)合發(fā)布基于LoRa通訊的開發(fā)套件

    更具性價(jià)比的解決方案?;赒B20LoRa模組的開發(fā)套件本次推出的開發(fā)套件集成了利爾達(dá)QB20系列LoRa模組,適配復(fù)旦FM33LC0系列開發(fā)板,即插即用,可幫助
    的頭像 發(fā)表于 11-24 08:13 ?620次閱讀
    即插即用!<b class='flag-5'>復(fù)旦</b><b class='flag-5'>微</b>和利爾達(dá)聯(lián)合發(fā)布基于LoRa通訊的開發(fā)套件

    FUDAN 復(fù)旦微電子 MCU-汽車電子| 基于FM33FT0xxA的觸摸設(shè)計(jì)方案

    基于FM33FT0xxA的觸摸設(shè)計(jì)方案是一種應(yīng)用于汽車電子領(lǐng)域的觸摸方案,主要用于汽車閱讀頂燈、空調(diào)面板、中控面板的觸摸檢測(cè)。
    的頭像 發(fā)表于 11-13 10:27 ?4444次閱讀
    FUDAN <b class='flag-5'>復(fù)旦</b>微電子 MCU-汽車電子| 基于<b class='flag-5'>FM33</b>FT0xxA的觸摸設(shè)計(jì)方案