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

【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
谢谢分享                        

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

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