<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

復旦微FM33LG048軟件I2C驅動OLED的demo 幫助新手快速從STM32上手FM33

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

demo任務:利用復旦微FM33LG048外設I2C驅動OLED顯示

demo目的:通過demo熟悉復旦微的I2C、GPIO外設,幫助復旦微的新學習者快速了解復旦微庫函數

demo設備:MCU——FM33LG048;OLED——四針腳OLED,型號:JMD096D.

移植教程

#include "main.h"

#include "fm33_assert.h"

#include "OLED.h"

/*********************************************主函數*******************************************/

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();在復旦微官方例程中已經給出,未修改任何代碼,故這里不再贅述。

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

demo所用函數如下,直觀展示了與SMT32的對比,方便新手快速從SMT32入手復旦微FM33。

/******************************************************復旦微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);

}

需要注意,在復旦微庫函數中,沒有STM32的GPIO_WriteBit(*GPIOx,GPIO_Pin_x,Value)對應的庫函數,需要自己封裝。

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

/**************************************STM32向特定引腳寫入0,1數據********************************************/

#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

/*************************************復旦微向特定引腳寫入0,1數據*********************************************/

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); }}

完整代碼在附件。

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OLED
    +關注

    關注

    118

    文章

    5991

    瀏覽量

    221499
  • STM32
    +關注

    關注

    2240

    文章

    10675

    瀏覽量

    348868
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1348

    瀏覽量

    120881
  • GPIO
    +關注

    關注

    16

    文章

    1139

    瀏覽量

    50601
收藏 人收藏

    評論

    相關推薦

    復旦微MCU 電機應用 | 基于FM33LF0xx系列的線性驅動應用

    復旦微MCU電機應用|基于FM33LF0xx系列線性驅動應用-電動床前言線性驅動作為電動執行器在智能家居、智慧辦公、汽車部件、醫療器械、工業自動化等領域都具有廣泛應用。它將電機的旋轉運
    的頭像 發表于 01-20 08:28 ?391次閱讀
    <b class='flag-5'>復旦</b>微MCU 電機應用 | 基于<b class='flag-5'>FM33</b>LF0xx系列的線性<b class='flag-5'>驅動</b>應用

    復旦微汽車MCU團隊推出觸摸閱讀燈參考設計

    廣泛應用在中控面板、方向盤開關、電容觸摸門把手、側壁燈、閱讀頂燈等觸摸場景。為幫助客戶快速縮短開發周期,復旦微基于FM33FT0xxA系列汽車MCU,開發完成了觸摸閱讀
    的頭像 發表于 12-28 08:28 ?299次閱讀
    <b class='flag-5'>復旦</b>微汽車MCU團隊推出觸摸閱讀燈參考設計

    FUDAN 復旦微電子 MCU-汽車電子| 基于FM33FT0xxA的觸摸設計方案

    基于FM33FT0xxA的觸摸設計方案是一種應用于汽車電子領域的觸摸方案,主要用于汽車閱讀頂燈、空調面板、中控面板的觸摸檢測。
    的頭像 發表于 11-13 10:27 ?3728次閱讀
    FUDAN <b class='flag-5'>復旦</b>微電子 MCU-汽車電子| 基于<b class='flag-5'>FM33</b>FT0xxA的觸摸設計方案

    基于復旦微電子FM33LE026物聯水表設計

    基于復旦微電子FM33LE026的物聯水表在采用125K射頻卡的基礎上同時具有NB和藍牙通訊。擁有強磁報警、電池欠壓、欠費透支等功能,液晶可以實時顯示水表用量、剩余金額、信號強度以及用戶信息等數據
    的頭像 發表于 11-10 08:28 ?784次閱讀
    基于<b class='flag-5'>復旦</b>微電子<b class='flag-5'>FM33</b>LE026物聯水表設計

    基于復旦微電子通用MCU FM33LC046U的螺栓壓緊力監測裝置

    基于復旦微電子通用MCU FM33LC046U的螺栓壓緊力監測裝置
    的頭像 發表于 10-31 16:49 ?402次閱讀
    基于<b class='flag-5'>復旦</b>微電子通用MCU <b class='flag-5'>FM33</b>LC046U的螺栓壓緊力監測裝置

    復旦微電子又添新家族:FM33FR0xx系列MCU

    復旦微電子又添新家族:FM33FR0xx系列MCU
    的頭像 發表于 09-26 16:25 ?464次閱讀
    <b class='flag-5'>復旦</b>微電子又添新家族:<b class='flag-5'>FM33</b>FR0xx系列MCU

    FM33LC0XX開發注意事項

    電子發燒友網站提供《FM33LC0XX開發注意事項.pdf》資料免費下載
    發表于 09-20 09:59 ?1次下載
    <b class='flag-5'>FM33</b>LC0XX開發注意事項

    STM32F3 I2C模塊介紹

    I2C規范版本03兼容性 ?SMBus 2.0硬件支持 ?PMBus 1.1兼容性 ?多主機和機功能 ?控制所有I2C總線特定的排序、協議、仲裁和定時 ?標準、
    發表于 09-12 06:22

    FM33LG0xx系列RTCB調校AN

    FM33LG0xx系列 RTCB調校AN
    發表于 08-28 14:44 ?0次下載

    FM33LE0低功耗MCU芯片產品說明書

    FM33LE0系列產品說明書V2.1 FM33L .E0的主要特性如下: ●寬電壓范圍: 1.8~5.5V ●工作溫度 范圍: 40C~+85C ●處理器內核
    發表于 08-25 16:04 ?5次下載

    復旦微電推出三款MCU新品:FM33FG0xxA、FM33LF0xx、 FM33FK50xx系列

    本次發布的FM33FG0xxA系列MCU是針對汽車電子市場的全新產品,在電路設計上符合ISO26262標準,給用戶系統安全設計保駕護航。
    發表于 06-29 15:51 ?750次閱讀
    <b class='flag-5'>復旦</b>微電推出三款MCU新品:<b class='flag-5'>FM33</b>FG0xxA、<b class='flag-5'>FM33</b>LF0xx、 <b class='flag-5'>FM33</b>FK50xx系列

    如何驅動I2C接口的OLED屏?

    前面我們介紹了驅動SPI接口LCD5110顯示屏的方法,這次介紹一下如何驅動I2C接口的OLED屏,該OLED屏為0.91寸單色屏。
    發表于 06-27 06:37

    復旦微MCU命名規則及選型指南

    復旦微MCU產品共八款,其中應用最多有四款:FM33LE0xx,FM33LC0xx,FM33LG0xx,FM33FR0下表為命名規則
    的頭像 發表于 06-20 16:39 ?1039次閱讀
    <b class='flag-5'>復旦</b>微MCU命名規則及選型指南

    復旦微電首款面向汽車應用的FM33LGOxxA系列MCU產品

    FM33LGOxxA系列作為復旦微電推出的首款面向汽車應用的MCU產品,擁有高可靠電路設計,具備超低功耗和安全特性,已經通過AEC-Q100認證。
    發表于 05-22 14:49 ?270次閱讀
    <b class='flag-5'>復旦</b>微電首款面向汽車應用的<b class='flag-5'>FM33</b>LGOxxA系列MCU產品

    復旦微電推出FM25/FM29系列SLC NAND存儲器新品

    下一階段,復旦微電全新FM24LN、FM24N系列EEPROM存儲器全系列產品將覆蓋64Kbit~2Mbit容量,FM25N將補全64Kbit~4Mbit全系列容量。
    發表于 05-05 11:23 ?430次閱讀
    <b class='flag-5'>復旦</b>微電推出<b class='flag-5'>FM</b>25/<b class='flag-5'>FM</b>29系列SLC NAND存儲器新品
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>