0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

复旦微电子 FM33LG0xx系列开发板—OLED以及电子时钟应用

复旦微MCU 2023-01-13 14:17 次阅读

复旦微电子推出的FM33LG0xx开发板免费试用活动,小伙伴们积极参与,并基于FM33LG0xx开发板进行开发,如下是参与者的开发过程和心得。

FM33LG0xx系列开发板示意图

bc3bd8e4-9197-11ed-ad0d-dac502259ad0.jpgFM33LG0xx开发板在引脚资源的使用上是很有特点的,它既不是按走线的方便来提供引脚资源,也不是以Arduino接口的方式来提供引脚资源,而是按接口的类型,这就为使用者提供了极大的方便。由于该开发板在外设的配置上比较简单,因此有必要为它配上一个显示屏来观察输出信息。这里为它配置的是一款0.96寸的双色显示屏,它使用的是板上的I2C接口
bc483d64-9197-11ed-ad0d-dac502259ad0.png

图 1.显示效果

bc567212-9197-11ed-ad0d-dac502259ad0.png

图 2.I2C接口电路原理

该接口所使用的引脚为:

SCL---PA11

SDA---PA12

为便于以GPIO口来模拟I2C驱动,相关引脚输出高低电平的定义为:


#defineSCL_high FL_GPIO_SetOutputPin(GPIOA,FL_GPIO_PIN_11)
#defineSCL_low FL_GPIO_ResetOutputPin(GPIOA,FL_GPIO_PIN_11)
#defineSDA_high FL_GPIO_SetOutputPin(GPIOA, FL_GPIO_PIN_12)
#defineSDA_low FL_GPIO_ResetOutputPin(GPIOA,FL_GPIO_PIN_12)

以模拟方式发送字节数据的函数为:

void Write_IIC_Byte(unsigned char IIC_Byte){ unsigned char i; unsigned char m,da; da=IIC_Byte; SCL_low; for(i=0;i<8;i++) { m=da; m=m&0x80; if(m==0x80) { SDA_high; } else SDA_low; da=da<<1; SCL_high; SCL_low; }}

为实现图1的显示效果,其主程序为:

int main(void){ MF_Clock_Init(); MF_SystemClock_Config(); FL_Init(); MF_Config_Init(); UserInit(); key_int(); led_int(); oled_app(); OLED_Init(); OLED_Clear(); OLED_ShowString(20,0,"FM33LG0XX",16); OLED_ShowCHinese(20,2,0); OLED_ShowCHinese(36,2,1); OLED_ShowCHinese(52,2,2); OLED_ShowCHinese(68,2,3); OLED_ShowCHinese(84,2,4); OLED_ShowCHinese(100,2,5); OLED_ShowString(20,6,"jinglixixi",16); while(1);}

有了OLED屏的显示功能,后面再遇到显示问题时就方便许多。在FM33LG0xx开发板的内部,配有一个低功耗实时时钟日历(RTCC),并带有数字调校功能,其调校精度为+/-0.476ppm,将它与OLED屏的显示功能相结合,即可轻松地实现RTC电子时钟的功能。

bc6362c4-9197-11ed-ad0d-dac502259ad0.png

图 3.计时效果

bc74af98-9197-11ed-ad0d-dac502259ad0.png

图 4.RTC后备电源

由于在例程中提供了标准的RTC读取函数,故稍加修改即可完成RTC的读取及显示功能,修改后的读取函数为:

uint8_t RTC_GetRTCA(FL_RTCA_InitTypeDef *InitStructer){ uint8_t n, i; uint8_t Result = 1; uint32_t u,ut; FL_RTCA_InitTypeDef TempTime1; FL_RTCA_GetTime(RTCA, &TempTime1); u=((uint32_t *)(&TempTime1))[4]; OLED_ShowNumH(20,5,u,2,16); u=((uint32_t *)(&TempTime1))[5]; OLED_ShowNumH(44,5,u,2,16); u=((uint32_t *)(&TempTime1))[6]; OLED_ShowNumH(68,5,u,2,16); return Result;}

实现RTC计时功能的测试函数如下,它含有RTC的初始值设置及循环读取功能:

uint8_t RTC_GetRTCA(FL_RTCA_InitTypeDef *InitStructer){ uint8_t n, i; uint8_t Result = 1; uint32_t u,ut; FL_RTCA_InitTypeDef TempTime1; FL_RTCA_GetTime(RTCA, &TempTime1); u=((uint32_t *)(&TempTime1))[4]; OLED_ShowNumH(20,5,u,2,16); u=((uint32_t *)(&TempTime1))[5]; OLED_ShowNumH(44,5,u,2,16); u=((uint32_t *)(&TempTime1))[6]; OLED_ShowNumH(68,5,u,2,16); return Result;}

实现图3计时显示效果的主程序为:

int main(void){ MF_Clock_Init(); MF_SystemClock_Config(); FL_Init(); MF_Config_Init(); UserInit(); CDIF->CR= 0x02; oled_app(); OLED_Init(); OLED_Clear(); OLED_ShowString(20,0,"FM33LG0XX",16); OLED_ShowCHinese(20,2,0); OLED_ShowCHinese(36,2,1); OLED_ShowCHinese(52,2,2); OLED_ShowCHinese(68,2,3); OLED_ShowCHinese(84,2,4); OLED_ShowCHinese(100,2,5); OLED_ShowString(20,6,"jinglixixi",16); FL_DelayMs(1000); OLED_ShowString(20,6," ",16); OLED_ShowString(20,5," : : ",16); Test_RTCA(); while(1) { LED0_TOG(); FL_DelayMs(1000); }}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED
    +关注

    关注

    118

    文章

    6000

    浏览量

    221603
  • 微电子
    +关注

    关注

    18

    文章

    344

    浏览量

    40718
  • 开发板
    +关注

    关注

    25

    文章

    4459

    浏览量

    94273
收藏 人收藏

    评论

    相关推荐

    复旦微MCU 电机应用 | 基于FM33LF0xx系列的线性驱动应用

    复旦微MCU电机应用|基于FM33LF0xx系列线性驱动应用-电动床前言线性驱动作为电动执行器在智能家居、智慧办公、汽车部件、医疗器械、工业自动化等领域都具有广泛应用。它将电机的旋转运动转换
    的头像 发表于 01-20 08:28 402次阅读
    <b class='flag-5'>复旦</b>微MCU 电机应用 | 基于<b class='flag-5'>FM33LF0xx</b><b class='flag-5'>系列</b>的线性驱动应用

    基于RA6M5开发板的低功耗电子时钟设计

    本项目是基于启明RA6M5开发板搭载2.4寸液晶屏的电子时钟,该电子时钟有两个模式——正常模式和低功耗模式,可以通过开发板的按键改变时钟模式
    的头像 发表于 12-25 12:26 518次阅读
    基于RA6M5<b class='flag-5'>开发板</b>的低功耗<b class='flag-5'>电子时钟</b>设计

    即插即用!复旦微和利尔达联合发布基于LoRa通讯的开发套件

    更具性价比的解决方案。基于QB20LoRa模组的开发套件本次推出的开发套件集成了利尔达QB20系列LoRa模组,适配复旦FM33LC0
    的头像 发表于 11-24 08:13 297次阅读
    即插即用!<b class='flag-5'>复旦</b>微和利尔达联合发布基于LoRa通讯的<b class='flag-5'>开发</b>套件

    FUDAN 复旦微电子 MCU-汽车电子| 基于FM33FT0xxA的触摸设计方案

    基于FM33FT0xxA的触摸设计方案是一种应用于汽车电子领域的触摸方案,主要用于汽车阅读顶灯、空调面板、中控面板的触摸检测。
    的头像 发表于 11-13 10:27 3745次阅读
    FUDAN <b class='flag-5'>复旦</b><b class='flag-5'>微电子</b> MCU-汽车<b class='flag-5'>电子</b>| 基于<b class='flag-5'>FM33</b>FT0xxA的触摸设计方案

    复旦FM33LG048软件I2C驱动OLED的demo 帮助新手快速从STM32上手FM33

    demo任务:利用复旦FM33LG048外设I2C驱动OLED显示demo目的:通过demo熟悉复旦微的I2C、GPIO外设,帮助复旦微的
    的头像 发表于 11-11 08:27 280次阅读
    <b class='flag-5'>复旦</b>微<b class='flag-5'>FM33LG</b>048软件I2C驱动<b class='flag-5'>OLED</b>的demo 帮助新手快速从STM32上手<b class='flag-5'>FM33</b>

    基于复旦微电子FM33LE026物联水表设计

    基于复旦微电子FM33LE026的物联水表在采用125K射频卡的基础上同时具有NB和蓝牙通讯。拥有强磁报警、电池欠压、欠费透支等功能,液晶可以实时显示水表用量、剩余金额、信号强度以及
    的头像 发表于 11-10 08:28 818次阅读
    基于<b class='flag-5'>复旦</b><b class='flag-5'>微电子</b><b class='flag-5'>FM33</b>LE026物联水表设计

    基于复旦微电子通用MCU FM33LC046U的螺栓压紧力监测装置

    基于复旦微电子通用MCU FM33LC046U的螺栓压紧力监测装置
    的头像 发表于 10-31 16:49 414次阅读
    基于<b class='flag-5'>复旦</b><b class='flag-5'>微电子</b>通用MCU <b class='flag-5'>FM33</b>LC046U的螺栓压紧力监测装置

    【LuckFox Pico Plus开发板免费试用】+秒计数器与电子时钟

    所示。 图1 计时效果 此外,如果采用日期数据截取的方式还可实现电子时钟的计时功能。 数码管的显示功能是为电子时钟服务的,那该如何获取计时值呢? 使用date指令则可获取系统的计时值,其数据格式如下
    发表于 10-28 18:05

    复旦微电子又添新家族:FM33FR0xx系列MCU

    复旦微电子又添新家族:FM33FR0xx系列MCU
    的头像 发表于 09-26 16:25 472次阅读
    <b class='flag-5'>复旦</b><b class='flag-5'>微电子</b>又添新家族:<b class='flag-5'>FM33FR0xx</b><b class='flag-5'>系列</b>MCU

    FM33LC0XX开发注意事项

    电子发烧友网站提供《FM33LC0XX开发注意事项.pdf》资料免费下载
    发表于 09-20 09:59 1次下载
    <b class='flag-5'>FM33LC0XX</b><b class='flag-5'>开发</b>注意事项

    FM33LG0xx系列RTCB调校AN

    FM33LG0xx系列 RTCB调校AN
    发表于 08-28 14:44 0次下载

    基于Milk-V Duo 开发板电子时钟

    电子时钟
    jinglixixi
    发布于 :2023年07月05日 00:03:44

    复旦微MCU命名规则及选型指南

    复旦微MCU产品共八款,其中应用最多有四款:FM33LE0xx,FM33LC0xx,FM33LG0xx,FM33FR0下表为命名规则
    的头像 发表于 06-20 16:39 1051次阅读
    <b class='flag-5'>复旦</b>微MCU命名规则及选型指南

    OLED电子时钟制方案

    在前篇基础上添加了OLED模块连接。DS1302模块的VCC和GND连接Uno开发板的3.3V和GND。DS1302模块的CLK、DAT、RST对应连接Uno开发板的4、3、2引脚。
    发表于 06-15 16:40 816次阅读
    <b class='flag-5'>OLED</b><b class='flag-5'>电子时钟</b>制方案

    复旦微电首款面向汽车应用的FM33LGOxxA系列MCU产品

    FM33LGOxxA系列作为复旦微电推出的首款面向汽车应用的MCU产品,拥有高可靠电路设计,具备超低功耗和安全特性,已经通过AEC-Q100认证。
    发表于 05-22 14:49 273次阅读
    <b class='flag-5'>复旦</b>微电首款面向汽车应用的<b class='flag-5'>FM33</b>LGOxxA<b class='flag-5'>系列</b>MCU产品