8051 ELL函数库,是我根据新一代增强型8051,针对其丰富的芯片资源,基于keil开发的软件包。函数库采用了LL库的编程**,充分考虑8051的特性,结合硬件条件,提供大量标准的API函数,供开发者访问底层硬件细节。并且函数库的大小可裁剪,在代码密度和执行效率上做了很好的平衡。
为考虑函数库的兼容性,我在编写规则及注释上面选择了全英文的方式,若开发者不习惯全英文,可以通过库函数提供的开发者文档了解API函数的具体使用方法,我们在文档里提供了详细丰富的中文注解和说明。 (下一个版本讲在库代码中引入中文注释!编码格式为UTF-8,支持Keil和VScode 无缝切换)
函数库遵循 Apache 许可证 2.0 版本,可免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。
大家觉得好用的话,记得给个Star,我想上自荐!!!!
配套核心板购买连接(待上架)
当前版本为:1.1.6
版本更新时间:2021.04.18
作者微信:ze_wenu
B站账号:泽文i
ELL是efficient low-layer
的缩写,意思是高效低封装
,结合了HAL库
和LL库
的编程**,既保证了通用性又降低了flash的过度占用。可谓是一举两得,高效、简洁、好用!
开发函数库,最初是为了满足我自己的生产需求,后来经过深思熟虑,我想做一个好用的通用库,所以把它开源出来,分享给广大工程师们。
函数库是基于Keil开发,支持Keil4和Keil5,支持Vscode协同开发,推荐使用EIDE插件。目前函数库主要适配了STC公司的单片机型号,以STC8系列为主。后续计划增加STC12、STC15、STC16系列。
如果你明白了ELL函数库的架构,那么对你学习本库会有非常大的帮助!函数库采用了一个裸机框架来组织库文件。框架包括两大部分:工程文件
和库文件
。
工程文件主要存放Keil工程
、Vscode文件
、用户代码
。这里可以根据你的编程习惯进行安排,非常的自由!库文件才是我们的重头戏,它主要分为四个部分:核心文件夹
、片内外设库
、组件库
、设备驱动库
。
核心文件夹: 存放各种MCU的寄存器头文件、函数库重定义数据类型头文件、函数库常用数据结构头文件
片内外设库: 存放MCU的片内外设模块,是库的主要构成单元。
组件库: 配套8051内核开发的好用组件,具有一定的抽象性和封装性,能加速项目的开发,比如TMT时间片任务进程组件。
设备驱动库: 一些常用的外围芯片、模块,通过统一的驱动框架进行封装,方便开发。
下面是ELL函数库的框架图:
整个固件库,充分利用了keil的一些特性,比如使用LX51扩展链接器/定位器,优化了BL51的功能,可以生成更小的目标文件等
√
代表已经支持、X
代表MCU没有这个外设、空
代表还没有适配
部分型号可能有所差异,详情可查看官方数据手册。
型号 | 定时器 | IO | 中断 | 系统时钟 | PCA | PWM | HPWM | EEPROM | ADC | MDU16 | 比较器 | USB |
---|---|---|---|---|---|---|---|---|---|---|---|---|
STC8A系列 | √ | √ | √ | √ | √ | √ | X | √ | √ | X | √ | X |
STC8C系列 | √ | √ | √ | √ | X | X | X | √ | X | √ | √ | X |
STC8F系列 | √ | √ | √ | √ | X | X | X | √ | X | X | √ | X |
STC8G系列 | √ | √ | √ | √ | √ | X | √ | √ | √ | √ | ||
STC8H系列 | √ | √ | √ | √ | X | X | √ | √ | √ | √ |
- 增加ADC代码部分中文注释
- 增加TIMER代码部分中文注释,修改定时器结构体句柄的成员Value为Time
- 增加GPIO的Pin宏定义,操作第四位,和操作高四位
- 发布1.1.6版本,库变得更加稳定
- 更新示例,增加PCA做定时器
- 更新两个ADC的例程
- 更新STC8H对ADC的支持
- 修复STC8F的类型错误bug
- 更新版权声明
- 更新开发者文档
- 修复比较器读取标志位的宏函数bug
-
优化TMT组件,提高健壮性
-
更新按键扫描驱动,支持高低电平触发,两种按键生效模式
-
更新开发者文档,增加增强型PWM手册 KeyScan手册
-
优化TMT组件,提高健壮性
-
增加各种外设的中断开关宏函数,方便实时控制中断
-
修复STC8A STC8F 串口bug
-
增加对STC8C、STC8G、STC8H系列单片机的串口2、3、4中断优先级的适配
-
增加对STC8C、STC8G、STC8H系列单片机的串口波特率发生器预分频的处理
- 增加对STC8C系列单片机的适配
- 修复STC8H、STC8G 时钟无法读取15M以下频率的bug
-
修复STC8H 时钟管理的bug
-
增加STC8G 对ADC的支持 COMP比较器的支持
-
增加STC8G STC8H的硬件16位乘除法运算单元模块