复旦微_黄泽安 发表于 2021-4-28 15:40:01

【FM33LG0xx系列】FM33LG0xx FL库例程 & Keil Pack


【2024-05-16】 v0.47
更新内容:

    BSTIM 驱动更新,修正使用lsclk时的等待时间。
    OPA 驱动更新,修正使用OPA模式选择
    COMP驱动更新,修正比较源是VREF 时 没开启 缓冲器的 bug,在所有情况都打开

    完善UART接收中断例程
    更新OPA例程






【2023-08-01】 v0.46
更新内容:

    将例程中的FL库升级到V2.3.5版本:
      fm33lg0xx_fl_gpio.h:修改对于GPIO->DSET/DRST寄存器直接寄存器赋值操作,而不用‘|=’
      fm33lg0xx_fl_exti.c:修改IS_EXTI_TRIG_EDGE的判断
      fm33lg0xx_fl_flash.c:flash擦写 时钟, 退出时关闭

    ADC触发模式DMA(BSTIME16):修改ADC DMA wait=0
    ADC单端DMA中断:修改ADC DMA wait=0;增加ADC_IRQHandler中断服务程序中的中断源判断
    ADC单端DMA中断(VREFP):增加ADC_IRQHandler中断服务程序中的中断源判断
    SLEEP&deepsleep GPIO唤醒:IO作为输入,配置内部上拉
    SLEEP&deepsleep WKUP唤醒:IO作为输入,配置内部上拉
    FreeRTOS:修改BUG,FL_GPIO_InitTypeDef有个字段未初始化,导致进入ASSERT
    FreeRTOS_DeepSleep:修改BUG,FL_GPIO_InitTypeDef有个字段未初始化,导致进入ASSERT;添加LPTIMER中断服务程序
    添加UART4中断收发例程, rtthread nano 版本的 Active和低功耗例子。






【2023-01-10】 v0.45
更新内容:
ADC例程中ADC工作时钟换为RCHF, ADC的中断流程有做修改(修改原因参看开发注意事项V0.10)




【2023-01-05】 v0.44

更新内容:
[*]将例程中的FL库升级到V2.3.4版本:

[*]fm33lg0xx_fl_cmu.h:将ADC的APB工作时钟加入CMU驱动库中,简化驱动使用;
[*]fm33lg0xx_fl_lpuart.h:FL_LPUART_WriteTXBuff和FL_LPUART_WriteMatchData函数,输入参数位宽从8位改为32位;
[*]fm33lg0xx_fl_i2c.c:I2C主机SDA Hold时间计算添加BRG寄存器Mask防止溢出;
[*]fm33lg0xx_fl_iwdt.c:看门狗初始化,在配置的窗口不为0情况下添加等待规避异步操作带来的问题;
[*]ADC相关例程,修改工作时钟为APB(工作时钟可以为其他时钟,不是必须是APB)。
[*]SPI DMA例程重写;
[*]添加ADC单端中断(VREFP)例程,UART DMA例程,SPI从机例程,I2C DMA例程








以下为FM33LG0xx芯片适配FL库V2版本的Keil Pack包:

【最新版本】
更新记录

[*]修改PDSC文件


【历史版本】








——————————————————————————————————————————————
以下为历史版本:
——————————————————————————————————————————————

【2022-07-22】 v0.43

更新内容:
[*]将例程中的FL库升级到V2.3.3版本:

[*]fm33lg0xx_fl_lptim16.c/.h:修复初始化函数中误修改的时钟配置代码;
[*]fm33lg0xx_fl_lpuart.h:修复调制寄存器位宽定义的问题;
[*]fm33lg0xx_fl_i2c.c:从机删除使能SDA输出延迟语句;
[*]fm33lg0xx_fl_lcd.c:添加SEG相关的注释;
[*]IWDT和WWDT例程修复LED问题;







【2022-07-14】 v0.42

更新内容:
[*]将例程中的FL库升级到V2.3.2版本:

[*] 修复个别驱动文件变量类型转换问题;
[*] 修复个别switch语句没有default分支的问题;
[*]fm33lg0xx_fl_can.c/.h:修复CAN初始化函数的问题;
[*]fm33lg0xx_fl_cmu.c/.h, fm33lg0xx_fl_divas.c/.h, fm33lg0xx_fl_dma.c/.h, fm33lg0xx_fl_flash.c/.h, fm33lg0xx_fl_rmu.c/.h, fm33lg0xx_fl_dma.c/.h:修复一些函数的参数和内容错误;
[*]fm33lg0xx_fl_lptim32.c, fm33lg0xx_fl_lptim16.c:修复普通计数模式下使用异步计数时的问题;
[*]LPTIM16编码器例程修复计算问题;
[*]SPI示例中删除等待标志的延时;

v2.3.0以上版本的驱动中,上电LSCLK默认RCLP关闭CDIF通道,而不是默认XTLF。需要使用XTLF时等XTLF建立后再打开CDIF开关,这点在例程中体现。具体原因可以参见 "FM33LG0XX开发注意事项V0.7"








【2022-06-14】 v0.41

更新内容:
[*]修复fm33lg0xx_fl_exti.c中延时函数 __nop()在IAR中的编译问题
[*]修复IAR部分例程工程打开失败的问题
[*]PLL例程增加XTHF停振检测中断

本次相对V0.40修改了以上3点内容,对于V0.40中的修改的以下内容还是需要引起注意:
修改SystemInit()函数,新版本的驱动中,上电LSCLK默认RCLP关闭CDIF通道,而不是默认XTLF。需要使用XTLF时等XTLF建立后再打开CDIF开关,这点在例程中体现。具体原因可以参见 "FM33LG0XX开发注意事项V0.7"








【2022-06-10】 v0.40

更新内容:
[*]将例程中的FL库升级到V2.3.0版本:

[*]修改SystemInit()函数,新版本的驱动中,上电LSCLK默认RCLP关闭CDIF通道,而不是默认XTLF。需要使用XTLF时等XTLF建立后再打开CDIF开关,这点在例程中体现。具体原因可以参见 "FM33LG0XX开发注意事项V0.7"
[*]修改PMU寄存器中多余的VREFP定义
[*]修改FL库中的systick延时,改用软延时
[*]例程和FL库的while循环加超时设计
[*]将keil pack包升级到3.0.0版本,优化了SVD文件;IAR配置文件不变
[*]优化例程和FL库,部分switch增加default分支
[*]其他问题的修改








【2022-01-11】 v0.30

更新内容:

[*]将例程中的FL库升级到V2.2.0版本:

[*]文件变动:

[*]将fm33_assert.h文件从CMSIS对应目录移动到FL驱动库对应目录下;
[*]添加了fm33lg0xx_fl_conf.h和fm33lg0xx_fl_def.h,删除了fm33xx.h,将内容移动到fm33lg0xx_fl_def.h中;
[*]将fm33lg0xx_fl.h中的“包含外设头文件”部分的内容移动到了fm33lg0xx_fl_conf.h, 并在fm33lg0xx_fl.h中包含它。
[*]将fm33lg0xx_fl.h中的“FL驱动库返回类型定义”内容移动到了fm33lg0xx_fl_def.h, 并在fm33lg0xx_fl.h中包含它。
[*]将所有外设驱动.c文件的包含头文件替换为fm33lg0xx_fl.h,并使用FL_XXX_DRIVER_ENABLED条件编译包裹;
[*]将所有外设驱动.h文件的包含头文件替换为fm33lg0xx_def.h;
[*]取消使用#ifndef MFANG条件编译包裹外设的FL_XXX_DRIVER_ENABLED列表,防止冲突;
[*]CMSIS:

[*]system_fm33lg0xx.c/.h:

[*]删除原先的XTHF_VALUE和XTLF_VALUE,取而代之定义了XTHFClock和XTLFClock全局变量。如果用户使用XTHF或者XTLF,需要在FL库初始化前为该两个变量重新赋予正确的值并调用SystemCoreClockUpdate()函数以正确初始化FL库延时函数;
[*]为SystemInit函数中的时钟配置部分使用#ifndef MFANG条件编译包裹起来,使得魔方能够掌控时钟初始化内容;
[*]添加USE_IWDT_ON_STARTUP和IWDT_OVERFLOW_PERIOD宏定义,如果配置为使能,则在SystemInit函数中就初始化IWDT,保证芯片初始化时的抗干扰能力;
[*]添加USE_DEBUG_UNDER_SLEEP宏定义,如果配置为使能,则启用在休眠下保持调试器连接;
[*]添加USE_LSCLK_AUTO_SWITCH宏定义用于在LSCLK使用XTLF(即打开USE_LSCLK_CLOCK_SRC_XTLF宏定义)时配置自动切换的使能;
[*]fm33lg0xx.h:修改DMA通道存储地址寄存器名称为CHxMAD;
[*]fm33lg0xx_fl_cmu.c,fm33lg0xx_fl_uart.c:修改获取时钟频率函数以适应CMSIS的修改;
[*]fm33lg0xx_fl_exti.c:修改初始化函数,解决了选择的中断线大于等于16时产生的初始化不正确的问题。
[*]fm33lg0xx_fl_can.h:修改函数FL_CAN_ClearFlag_CRXOK名称为FL_CAN_ClearFlag_RXOK;
[*]fm33lg0xx_fl_lpuart.h:修改LPUART MCTL宏定义宽度为13bit;
[*]fm33lg0xx_fl_adc.c/.h:合并初始化结构体FL_ADC_CommonInitTypeDef的时钟源配置,将operationSource项合并到clockSource,将APBClockPrescaler项合并到clockPrescaler。合并后,当前ADC可选时钟变为:

[*]FL_CMU_ADC_CLK_SOURCE_RCLF
[*]FL_CMU_ADC_CLK_SOURCE_RCHF
[*]FL_CMU_ADC_CLK_SOURCE_XTHF
[*]FL_CMU_ADC_CLK_SOURCE_PLL
[*]FL_ADC_CLK_SOURCE_APBCLK
ADC分频可选项变为:FL_ADC_CLK_PSC_DIV1/2/4/8/16/32,其中在时钟源为FL_ADC_CLK_SOURCE_APBCLK时,仅1,2,4,8分频可选。[*]fm33lg0xx_fl_cmu.h:修改FL_CMU_LSCLK_SOURCE_XXX宏定义为FL_CMU_LSCLK_CLK_SOURCE_XXX;修正CMU_XTHFCR_CFG_Msk位宽错误;
[*]fm33lg0xx_fl_comp.c/.h:修改FL_COMP_INP_SOURCE_ULPBG_AREF宏定义为FL_COMP_INP_SOURCE_ULPBG_REF;
[*]fm33lg0xx_fl_atim.c, fm33lg0xx_fl_bstim16.c, fm33lg0xx_fl_bstim32.c, fm33lg0xx_fl_gptim.c:修正外设初始化函数等待Update标志时错误地使用&判断的问题,改用&&。【重要】
[*]fm33lg0xx_fl_lcd.h:修改FL_LCD_SEGEN0_SEG3位宽错误问题;
[*]fm33lg0xx_fl_lptim16.c/.h, fm33lg0xx_fl_lptim32.c/.h:将FL_LPTIM16/32_IC1_CAPTURE_SOURCE_XXX修改为FL_LPTIM32_IC1_CAPTURE_SOURCE_GROUP0 - FL_LPTIM32_IC1_CAPTURE_SOURCE_GROUP3;
[*]修改:

[*]所有的例程均删除了user_init.c/.h文件,并对应修改了相关内容;
[*]LPTIM32和LPTIM16例程:修改配置参数符合最新驱动库命名;







【2021-06-28】 v0.21

更新内容:

[*]将例程中的FL库升级到V2.1.1版本:

[*]CMSIS:添加了fm33_assert.h头文件,解除FL驱动库和工程文件的耦合。
[*]fm33lg0xx_fl.h:添加了对fm33_assert.h头文件的显式包含。
[*]fm33lg0xx_fl_lcd.h:修正了FL_LCD_SEGEN0_SEG3宏定义的位宽错误。
[*]fm33lg0xx_fl_vrefp.h:新增了对应的fm33lg0xx_fl_vrefp.c驱动文件,添加了FL_VREFP_Init初始化函数。
[*]fm33lg0xx_fl_adc.h:修正了ADC初始化会导致在之前的FL_ADC_CommonInit配置被复位的问题。
[*]fm33lg0xx_fl_vao.h:删除了多余头文件包含。
[*]修改:

[*]RNG相关例程:将测试函数分为两部分:随机数和CRC32_MPEG2。






【2021-06-08】 v0.20

更新内容:

[*]将例程中的FL库升级到V2.1.0版本:

[*]fm33lg0xx_fl_atim.c,fm33lg0xx_fl_atim.h:ATIM输出比较初始化结构体FL_ATIM_OC_InitTypeDef中增加正向通道输出控制配置项。(该更新不向前兼容)
[*]修改:

[*]ATIM 输出比较例程:初始化配置增加对正向通道输出控制的配置







【2021-05-28】 v0.11

更新内容:

[*]将例程中的FL库升级到V2.0.1版本:

[*]fm33lg0xx_fl.h:FL_DELAY_US和FL_DELAY_MS使用SystemCoreClock实现,用户在修改主频后可以直接修改SystemCoreClock让FL库延时保持准确。
[*]fm33lg0xx_fl_adc.h:添加PTAT定标值。
[*]fm33lg0xx_fl_cmu.h:修改CMU_XTHFCR_CFG位段Mask宽度错误,并相应修改FL库函数中的移位值。
[*]fm33lg0xx_fl_gpio.h:修改了控制使能外部中断相关寄存器的FL库函数中的Mask宽度错误导致无法使能或禁止外部中断线16,17,18的问题。
[*]fm33lg0xx_fl_iwdt.h:IWDT操作窗口的函数功能采用直接操作寄存器实现,加快操作速度。
[*]fm33lg0xx_fl_lcd.h:修复注释乱码问题。
[*]fm33lg0xx_fl_uart.h,fm33lg0xx_fl_lpuart.h:修改UART和LPUART的读写TXBUF/RXBUF以及LPUART的读写DMR的FL库函数的操作位宽为9位以支持9bit UART通讯。
[*]新增:

[*]ADC 温度采集例程
[*]修改:

[*]I2C例程判Start,Stop标志增加超时







【2021-04-28】v0.10

更新内容:
[*]将例程中的FL库升级到V2.0.0版本,该版本与旧版本的FL库不兼容,新用户请务必使用此版本FL库进行开发。FL库V2.0.0版本主要变动如下:

[*]修改问题,补充遗漏函数,并优化了驱动库结构:添加了fm33xx0xx_fl.c/.h文件用于包含全体外设FL驱动库文件,用户可以自行修改其中的宏定义方便的裁剪所需要的驱动文件,降低编译工作量;
[*]集成了FL_DelayMs/FL_DelayUs延时函数,默认使用Systick实现。这些函数均为弱定义函数,用户可以通过自定义函数覆盖来使用自己的实现方式;
[*]新增了外部中断驱动:fm33xx0xx_fl_exti.c/.h;
[*]将ENABLE/DISABLE,SET/RESET,PASS/FAIL定义移动到fm33xx0xx_fl.h中,并修改为FL_ENABLE/FL_DISABLE, FL_SET/FL_RESET, FL_PASS/FL_FAIL,避免和用户定义产生冲突;
[*]FL库在本次大版本修改之后修改了许多之前不合理的地方,FL库的结构逐步稳定下来,接下来我们会致力于推出兼容性的更新。
[*]修改了部分例程中的问题;
























duci001 发表于 2021-8-5 11:13:32

请问,复旦微的FL库文件,有没有:帮助文件、使用手册,之类的指导文件?
类似于其他品牌的:Driver Reference Guide文件?

页: [1]
查看完整版本: 【FM33LG0xx系列】FM33LG0xx FL库例程 & Keil Pack