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
    +关注

    关注

    121

    文章

    6332

    浏览量

    232539
  • 微电子
    +关注

    关注

    18

    文章

    405

    浏览量

    42618
  • 开发板
    +关注

    关注

    25

    文章

    6125

    浏览量

    113382
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【作品合集】沁恒微电子CH585开发板测评

    沁恒微电子CH585开发板测评作品合集 产品介绍: CH585是集成BLE无线通讯和高速USB及NFC的RISC-V MCU/SoC。片上集成了2Mbps低功耗蓝牙BLE通讯模块、USB全速控制器
    发表于 09-08 10:38

    【RA4M2-SENSOR】+RTC与电子时钟

    效果 若在此基础上添加OLED屏的显示功能,则电子时钟计时效果如图4所示。 图4 电子时钟计时效果 演示视频:
    发表于 09-03 12:08

    【RA-Eco-RA6M4开发板评测】实现RTC电子时钟的功能

    RA-Eco-RA6M4开发板是一款基于 Arm® Cortex®-M33 内核的开发工具,它有1MB 闪存、192kB支SRAM 及64kb ECC SRAM,其工作主频可达200MHz。 由于
    发表于 08-26 22:21

    复旦微低功耗MCU代理供应

    ………………………………………………………………………………… 复旦微原厂代理,支持终端工厂,为客户提供样品以及相关技术咨询 如需更多系列型号,欢迎联系咨询。 深圳市芯天电子有限公司
    发表于 07-29 11:43

    【RA-Eco-RA6M4开发板评测】+电子时钟的实现

    ; } OLED_ShowChar(x+(size2/2)*t,y,temp+\'0\',size2); } } 随后,在主程序中搭建一个计时进制处理便可实现电子时钟的功效,其主程序的内容为: void
    发表于 07-23 21:03

    【BPI-CanMV-K230D-Zero开发板体验】+电子时钟与片温检测实现

    由于BPI-CanMV-K230D-Zero开发板并未配置相应的显示器件,为此需要自行为其配置显示器件。 为了与开发板的小巧身材相匹配,便选取了一款I2C接口的0.96寸单色OLED屏。 要驱动
    发表于 07-19 00:59

    昂科烧录器支持FuDanWei复旦微电子的低功耗微控制器FM33LC043N

    昂科技术作为芯片烧录领域的领导者,在其新版烧录软件发布之际,宣布扩展了兼容芯片型号列表。新增型号包含了FuDanWei复旦微电子的低功耗微控制器FM33LC043N。目前,该芯片已获得昂科通用烧录
    的头像 发表于 07-13 11:35 540次阅读
    昂科烧录器支持FuDanWei<b class='flag-5'>复旦</b><b class='flag-5'>微电子</b>的低功耗微控制器<b class='flag-5'>FM33</b>LC043N

    复旦微低功耗MCU代理供应

    ………………………………………………………………………………… 复旦微原厂代理,支持终端工厂,为客户提供样品以及相关技术咨询 如需更多系列型号,欢迎联系咨询。 深圳市芯天电子有限公司
    发表于 06-27 18:32

    复旦微低功耗mcuFM33A0xx系列代理供应

    的RTC、ADC、AES以及UART、I2C、SPI、7816等通用外设接口。 应用领域: 国内/海外单、三相智能电表 IR46智能单、三相电表 物联网通讯模块 FM33G0xx系列 简介
    发表于 06-12 18:03

    电子时钟#

    电子时钟
    jf_63683381
    发布于 :2025年05月08日 17:25:18

    分享医院电子时钟系统的设计原则

    分享医院电子时钟系统的设计原则 医院电子时钟系统主要为全医院的计算机系统、呼叫系统、BA系统、手术室控制系统以及其它弱电子系统提供标准的时间源,使医嘱、考勤、医保、财务中心、库房等关键
    发表于 02-24 22:12

    dsPIC33C Touch-CAN-LIN Curiosity开发板用户指南

    电子发烧友网站提供《dsPIC33C Touch-CAN-LIN Curiosity开发板用户指南.pdf》资料免费下载
    发表于 01-22 16:18 1次下载
    dsPIC<b class='flag-5'>33</b>C Touch-CAN-LIN Curiosity<b class='flag-5'>开发板</b>用户指南

    dsPIC33EDV64MC205电机控制开发板用户指南

    电子发烧友网站提供《dsPIC33EDV64MC205电机控制开发板用户指南.pdf》资料免费下载
    发表于 01-21 14:34 12次下载
    dsPIC<b class='flag-5'>33</b>EDV64MC205电机控制<b class='flag-5'>开发板</b>用户指南

    ST NPI 新上架开发板 【NUCLEO-WL33CC1】

    配备STM32WL33 SoC的STM32 Nucleo开发板STM32WL33xx是一款高性能超低功耗无线应用处理器、适用于sub-1 GHz频段的无线射频应用Ultra-Low Power
    发表于 01-06 14:37 0次下载

    复旦微MCU 行业应用 | FM33LF0xx系列MCU在焊机行业应用案例

    :控制电路为模拟电路的传统焊机、同时具有模拟电路和数字电路的半数字化焊机,以及控制电路全为数字电路的全数字化焊机。方案架构半数字焊机产品应用基于FM33LF0
    的头像 发表于 12-09 16:57 1317次阅读
    <b class='flag-5'>复旦</b>微MCU 行业应用 | <b class='flag-5'>FM33LF0xx</b><b class='flag-5'>系列</b>MCU在焊机行业应用案例