# dmr-for-n32 **Repository Path**: c-ordinary/dmr-for-n32 ## Basic Information - **Project Name**: dmr-for-n32 - **Description**: 针对国民技术的MCU进行标准库封装 目前仅对N32G430进行抽象封装 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 5 - **Created**: 2022-07-10 - **Last Updated**: 2025-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ***暂停对本库的维护 ***暂停对本库的维护 ***暂停对本库的维护 目前仅对N32G430进行抽象封装 一、当前支持的芯片/已经实际测试使用过的型号 --------------- |1、N32G430C8L7| --------------- 二、功能对象管理 dmr库采用句柄(handle)的对象方式进行操作,参考为STM32的HAL和LVGL的OBJ 三、命名方式 所有函数都以dmr_为开头,后面跟着功能名,再跟着该功能的操作。(后面写法依照小驼峰) 例如 : dmr_gpioWritePinLevel 四、更新说明 V0.1.1 2023.10.09 1、hal文件 1、删除dmr_gpio部分函数,调整实现逻辑. 2、分离dmr_gpio的中断函数为独立函数. 3、隔离dmr_adc中单次初始化和扫描初始化函数,其获取函数一并隔离. V0.1.0 2023.01.19 1、hal文件 (1)、修改dmr_bootloader,完善API的完成度 (2)、修改dmr_delay,其dmr_delayMs函数直接调用dmr_delayUs进行延迟,后续再更新其他结构 (3)、修改dmr_flash,若入口id为0,则直接结束函数 (4)、修改dmr_malloc,使用宏隔开两个情况-使用内部flash当eeprom和不使用,分别在设置的缓存大小上再增加0x800(2K)和0x00的大小.API添加了两个,分别是dmr_mem_calloc,其功能与标准库的calloc功能基本一致,另一个是dmr_mem_getSurpluSize,可获取当前内存池的剩余大小 (5)、修改dmr_usart,将部分库函数替换成寄存器指针直接操作. 2、compoenets文件 (1)、修改dmr_ntc,增加了查表法函数、输入温度反算电阻值、获取串联电阻在总电阻上的百分之值 (2)、添加dmr_std,用于减少对math库的使用,减少空间使用,目前仅有求ln的函数 (3)、添加dmr_button V0.0.9 2022.10.23 1、hal文件 (1)、添加初版dmr_bootloader功能 (2)、增加dmr_delay的dmr_delayGetsysTickConut函数 -- 用于获取systick计算次数 (3)、添加dmr_usart的启动/停止printf输出功能函数 dmr_usartStopPrintfOut/dmr_usartStartPrintfOut (4)、修改dmr_can的FIFO大小,替换对memset和memcpy的使用 (5)、修改dmr_rs485输入参数枚举类型的问题 2、components文件 (1)、完善dmr_log代码,删除当前无用的函数 V0.0.8 2022.10.16 1、hal文件 (1)、修复dmr_malloc不兼容keil编译器的情况,并将文件移动到hal文件中 (2)、增加dmr_flash的API接口,用于带缓存/不带缓存/带检测/不带检测的写函数 (3)、修改dmr_rs485结构体元素访问结构,并将文件移动到hal文件中 (4)、添加初版tim功能封装 2、components文件 (1)、dmr_nonos增加重新计数API -- void dmr_nonosTaskAgainConut(dmr_nonosTaskHandle *handler) (2)、添加dmr_log文件,用于日志功能 V0.0.7 2022.10.08 1.hal文件 (1)、增加dmr_usart的size属性,用于规避越界问题.但其接收的最长长度约为原来的一半 (2)、完善dmr_usart的IDLEF标志位相关清除操作 V0.0.6 2022.10.07 1.components文件 (1)、添加dmr_malloc组件,用于内存池功能 V0.0.5 2022.10.02 1、hal文件 (1)、修改dmr_flash的函数调用方式,将handle结构体对象暂时移除 (2)、完善dmr_adc的对外函数 (3)、添加queue fifo组件 2、example文件 (1)、添加ADC例程 -- 单次触发读取 (2)、添加flash例程 -- 32位数据的读写(兼容8/16位),结构体直接写入与读取(最好确保结构体没有空隙,否则会造成浪费flash的情况) (3)、添加nonos组件例程 -- 时间轮转片(非抢占式中断系统)的使用 3、components文件 (1)、添加并修改ntc组件及增加对外接口 (2)、添加并修改nonos时间轮转片的任务组件 (3)、添加rs485组件 (4)、删除BSP、LOG组件 V0.0.4 2022.10.01 1、hal文件 (1)、添加对can的支持,其添加fifo缓冲,使用时需包含dmr_queue文件 (2)、添加对iwdg的支持 (3)、增加dmr_gpio对外接口的封装函数,其中包括极简配置GPIO的功能 (4)、修改dmr_gpio中函数入口及返回状态的枚举类型 (5)、删除dmr_gpio中初始化ADC的功能代码,移至到了dmr_adc中 (6)、修改dmr_delay中ms延迟的函数代码 (7)、添加dmr_flash对扇区(n32g430一个扇区为2k)的清除函数代码 (8)、修改dmr_i2c的函数入口参数兼容dmr_gpio的枚举类型 (9)、增加dmr_adc的初始化函数代码 (10)、删除dmr_gpio中默认电平可配置的对象属性 2、example文件 (1)、完善LED例程 -- 添加handle/非handle的使用代码 (2)、添加USART例程 -- 包含printf和回环代码 V0.0.3 2022.08.09 (1)、添加FreeRTOS中的vApplicationGetIdleTaskMemory vApplicationGetTimerTaskMemory 两个函数,用于支持静态创建任务API (2)、components添加对NTC的温度转换API (3)、hal添加对adc、flash、usart初步功能、gpio中添加对adc的时钟、等待启动等初始化 (5)、修复在nonos中delay ms延迟错误的问题 (7)、删除compoents中LOG文件 V0.0.2 ~ (1)、在原本的gpio基础上添加了exti功能、delay兼容FreeRTOS代码 (2)、components添加了bsp、log (3)、example中添加FreeRTOS的历程 V0.0.1 ~ (1)、添加gpio、delay、i2c master功能 五、当前支持的功能 ----------------------------- | hal | components | ----------------------------- | gpio | nonos | ----------------------------- | delay | ntc | ----------------------------- | exti | | ----------------------------- | adc | | ----------------------------- | usart | | ----------------------------- | flash | | ----------------------------- | i2c master| | ----------------------------- | can | | ----------------------------- | iwdg | | ----------------------------- | rs485 | | ----------------------------- | log | | ----------------------------- | tim | | ----------------------------- | malloc | | ----------------------------- | queue | | ----------------------------- 六、交流群 QQ群:722673676 版权声明 本软件协议使用Apache License, Version 2.0 GPL兼容自由软件许可证种类参考 http://www.gnu.org/licenses/license-list.en.html