你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【eBox生态圈】简化STM32编程,4个月完成eBox固件库

[复制链接]
shentqlf 发布时间:2016-1-14 18:56
本帖最后由 shentqlf 于 2016-1-14 18:58 编辑

四个月。。。真是不知该从何说起,这四个月应该说是,除了上班,剩下的时间都贡献给eBox了。
鄙人接触STM32有些年头了,也做过很多工程项目首选的控制器就是STM32,觉得STM32还是比较好用的一款芯片。随着项目的增多,发现每次做电路板回来都要调试板子上各种芯片的驱动,即使以前写过的驱动,也得修改IO等其他配置,说心里话
STM32的配置还是比较复杂的,我倒现在都没记住所有硬件外设的配置方法,每次都要查阅手册和芯片资料,不知各位大侠是不是也有此感觉。所以就心生念头,解决这个问题,让STM32像Arduino一样!这就是eBox最开始的想法。ST官方好像有个
maple,但是我没用过,就看过几眼介绍,然后决定不喜欢。然后就是4个月的熬夜。。。到今天终于完成了软硬件!!!
一、了解什么是eBox
eBox是一个运行在STM32平台上的涵盖了驱动层、系统层、标准应用软件层、用户软件层和bootloader的软硬件一体化的解决方案。丰富的标准驱动和标准应用,像用Arduino那样方便,性能又远高于arduino。操作系统的支持让eBox满足多任务系统的需求;标准应用为你提供多种控制算法、通信协议,满足不同应用场所的需求。
二、程序架构

有了这样一个程序架构,谢代码就可以明确代码功能和依赖关系,有助于代码层次化分明。
三、编程语言
eBox是基于c/c++编程实现的。需要学习简单c/c++的语言知识。
四、外设固件库支持列表
        ●数字IO,PA0-PG15所有引脚
        ●ADC1的16个通道,CH1-16
        ●通用定时器TIM2、3、4的定时中断
        ●高级定时器TIM1的定时中断
        ●12路PWM
        ●16通道的外部中断,可影射所有引脚
        ●硬件SPI1、2
        ●硬件I2C1、2
        ●软件SPI,支持任意IO配置
        ●软件件I2C,支持任意IO配置
        ●串口,支持USART1、2、3
        ●实时时钟RTC
        ●内部flash编程
目前也就调试了这么多了。外设固件库是对官方固件库的接口重新封装,基本是以外设描述性质的参数去初始化,所有外设具有较为统一的调用方法。
五、驱动库
eBox驱动是eBox固件最大的亮点,在用户下载标准的eBox驱动后只需做简单的IO连接、通信接口连接即可,不需要做何寄存器相关的任何修改即可将驱动程序移植到本地。从根本解决了STM32驱动移植性差的根本问题,大大降低用户驱动开发、调试难度。
驱动框架

目前提供的驱动列表有:
        ●74HC595串入并出转换芯片驱动
        ●独立按键(作者认为非常好使的按键程序)
        ●编码器按键驱动
        ●LCD1602显示器驱动
        ●Nokia5110显示器驱动
        ●DS3231实时时钟驱动
        ●MPU6050飞控必备的6轴传感器驱动
        ●L3G4200D三轴数字陀螺仪驱动
        ●LSM303DHLC三轴电子罗盘驱动
        ●AT24C02存储芯片驱动
        ●W25X16系列spi flash存储芯片驱动
        ●W5500网络控制器驱动
        ●SD/TF卡驱动
        ●三基色LED驱动,支持HSV、HSL调色。
        ●WS2812单线最牛三基色LED控制器,内部自带gamma校正,软件支持HSV、HSL调色。
在限定的格式下下出来的驱动可移植性是非常高的。只要是基于eBox固件库编写的驱动,不需要做任何修改即可用于不同的项目中,当然初始化那个接口中包含了你自己的硬件连接信息。驱动架构在编程指南中有详细介绍。此处不再啰嗦。
六、标准应用层
        ●常用工程数学、控制库(正在更新。。。)
        ●网络通信
        ●文件系统
        ●色彩控制、转换器
        ●等等
这一层提供了通用的应用软件,包括通信、文件系统、一些数学、控制算法。方便用户在不同的应用领域的使用。
七、操作系统
        自己写的(调度思想是大牛mango提供的)一个全抢占式操作系统。最大支持32个不同优先级任务(优先级不能相同),支持CPU使用率的统计,任务堆栈使用率的统计,任务的挂起。最大的特点就是简单高效,容易上手。
用户可以根据自己的习惯是否使用操作系统。
到此软件基本的状况就是这样了,下面简单的说下硬件
eBox-SPARK
寓意:星星之火、亦可燎原。希望能让更多的用户参与eBox生态圈的发展中,成为大家都认可的平台。方便大家使用。
上图


这是硬件的基本情况、主控选择了STM32F103C8T6,外设主要包含了一个W5500网络控制器、SD/TF卡、按键、LED。
为什么没有添加更多的外设?
一是成本考虑、二是必要性的考虑。SPARK主要是为了引导大家入门eBox的编程。用排针的方式引出来更通用,可以让用户连接自己的外设,做实验。
eBox的宗旨:
彻底简化STM32编程、打造eBox生态圈!

eBox最大的亮点在于,开源驱动的共享。以后每个人写的代码上传到咱们论坛里,让坛友下载后即可以使用。我一个人能写的驱动数量是有限的,只有更多人参与进来才能让驱动丰富起来!
目前核心内容趋于稳定,才面向大家提供了资料,日后会经常更新的。
eBox花费了我的大量精力和时间,其中包含了无数个通宵达旦和大把的人民币。。。
希望坛友支持下!
github源码下载地址:http://github.com/eboxmaker/ebox_stm32
教程
1.教程.rar (3.8 MB, 下载次数: 748)

评分

参与人数 1 ST金币 +1 收起 理由
eczc2015 + 1

查看全部评分

1 收藏 8 评论9 发布时间:2016-1-14 18:56

举报

9个回答
feiting94 回答时间:2016-1-14 19:47:39
请问一下,你的驱动都是调用自己写的外设固件库吗,可以支持几个系列的stm32芯片,感觉和HAL库有重复的地方啊
watershade 回答时间:2016-1-14 19:56:29
膜拜一下,之前在用maple,但是很多底层配置比较麻烦。但是有点事快速搭建和测试。
pythonworld 回答时间:2016-1-14 20:20:36
对固件库的更高层次的封装.能用ARM GCC编译吗?是不是跟mbed有点类似,但是层次更高.
文档很详细.心血之作!!!!!
david2016 回答时间:2016-1-15 00:21:50
楼主是否知道hAL库这个东西。。。。   我都不用标准库了,CUBEMX 在项目中已经用到了
党国特派员 回答时间:2016-1-15 09:17:32
学习思想。。。 blank.png blank1.png blank2.png blank3.png blank4.png
JackieLaura 回答时间:2016-1-15 09:22:06
学习学习。。。。
stmcu.org.png
jasoncsx 回答时间:2016-2-23 13:07:11
学习学习,顶起
anywill 回答时间:2016-10-11 15:30:06
很不错的应用,和mbed类似
jackten 回答时间:2017-6-3 10:07:19
谢谢分享                        

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版