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

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

[复制链接]
shentqlf 发布时间:2016-1-14 18:56
本帖最后由 shentqlf 于 2016-1-14 18:58 编辑
- `: N1 G0 w, n  n0 x6 O$ m/ K. `9 S+ S
/ G+ ~$ n' F9 D, E6 u/ a+ {$ i0 x' y' ~7 q四个月。。。真是不知该从何说起,这四个月应该说是,除了上班,剩下的时间都贡献给eBox了。
; K) E8 c4 v  s# H& G. t鄙人接触STM32有些年头了,也做过很多工程项目首选的控制器就是STM32,觉得STM32还是比较好用的一款芯片。随着项目的增多,发现每次做电路板回来都要调试板子上各种芯片的驱动,即使以前写过的驱动,也得修改IO等其他配置,说心里话9 e: k5 P5 O/ T. v9 E
STM32的配置还是比较复杂的,我倒现在都没记住所有硬件外设的配置方法,每次都要查阅手册和芯片资料,不知各位大侠是不是也有此感觉。所以就心生念头,解决这个问题,让STM32像Arduino一样!这就是eBox最开始的想法。ST官方好像有个
- X: E! k! B: M3 B2 \: }maple,但是我没用过,就看过几眼介绍,然后决定不喜欢。然后就是4个月的熬夜。。。到今天终于完成了软硬件!!!4 V7 A8 i2 j  H9 T# s7 u
一、了解什么是eBox. a+ z+ n0 i& r: B  |; h( C
eBox是一个运行在STM32平台上的涵盖了驱动层、系统层、标准应用软件层、用户软件层和bootloader的软硬件一体化的解决方案。丰富的标准驱动和标准应用,像用Arduino那样方便,性能又远高于arduino。操作系统的支持让eBox满足多任务系统的需求;标准应用为你提供多种控制算法、通信协议,满足不同应用场所的需求。
, u  M, c( Y; R3 v+ p5 p8 m二、程序架构
& E3 X# ^! v: U7 @9 j : g  n0 G  a* Q& _; o$ H: K$ O
有了这样一个程序架构,谢代码就可以明确代码功能和依赖关系,有助于代码层次化分明。
3 r  _" J( c7 W7 K' @三、编程语言
, n) t# O8 [6 W, U% K0 A# TeBox是基于c/c++编程实现的。需要学习简单c/c++的语言知识。
7 L1 G7 e3 X% j6 ~; U* A: K四、外设固件库支持列表6 X6 \6 s7 u/ m, P7 Z& U5 z, y
        ●数字IO,PA0-PG15所有引脚  M2 F1 R3 f$ q# E% i: w5 C
        ●ADC1的16个通道,CH1-16
7 R! B# f8 w- h2 O        ●通用定时器TIM2、3、4的定时中断
& f  j, x: Z5 q( ^        ●高级定时器TIM1的定时中断
9 a9 H* K7 E) z+ v# C" \        ●12路PWM; y# y* ?! y5 V
        ●16通道的外部中断,可影射所有引脚9 |) ^8 B* Z% p) Z& ?8 `+ o: V; T. z
        ●硬件SPI1、2
0 j3 e9 e, t3 ?1 a7 N        ●硬件I2C1、2
; @3 V! ^0 a3 L! t. \6 a        ●软件SPI,支持任意IO配置
5 Y7 Q/ _; S8 z6 l        ●软件件I2C,支持任意IO配置; Z8 p( y/ I2 \7 y# P% A
        ●串口,支持USART1、2、3
4 E: G- M5 I- j* S6 `        ●实时时钟RTC; d/ B: o3 t( V# |0 [# k# {  }8 D' o
        ●内部flash编程
5 ^' d' ~+ C- }* T4 s目前也就调试了这么多了。外设固件库是对官方固件库的接口重新封装,基本是以外设描述性质的参数去初始化,所有外设具有较为统一的调用方法。
4 ]9 ^/ R3 c6 T1 i$ C4 v7 I五、驱动库
) N5 b  K' n; O' reBox驱动是eBox固件最大的亮点,在用户下载标准的eBox驱动后只需做简单的IO连接、通信接口连接即可,不需要做何寄存器相关的任何修改即可将驱动程序移植到本地。从根本解决了STM32驱动移植性差的根本问题,大大降低用户驱动开发、调试难度。8 h5 n2 `! X3 p% Y0 o, x- O/ f$ n) @  p0 ]
驱动框架/ |7 o/ H) r. h2 _2 z) m) s
! f/ p. k8 J' P3 X  M
目前提供的驱动列表有:
0 }) Y# v1 {* ^/ [% O% B        ●74HC595串入并出转换芯片驱动$ t* |" e/ g- p/ g7 @, ~# Y
        ●独立按键(作者认为非常好使的按键程序)
( E' G: E3 {3 l- \. t& V        ●编码器按键驱动  F3 H, T! D2 x' U* A7 J4 r
        ●LCD1602显示器驱动, v4 }9 N' B. Z; @) k" s' |
        ●Nokia5110显示器驱动
6 [5 a( m0 Z0 U( f! ?# Y+ y, Y        ●DS3231实时时钟驱动) I/ s! N/ R7 {' W
        ●MPU6050飞控必备的6轴传感器驱动
) m% V, p5 ^2 _- v+ z9 ~        ●L3G4200D三轴数字陀螺仪驱动
$ O* v3 W7 j- M- |7 x        ●LSM303DHLC三轴电子罗盘驱动& `6 v& f* U% N
        ●AT24C02存储芯片驱动4 b- w" K& E9 T, J
        ●W25X16系列spi flash存储芯片驱动6 C/ U/ I- F) Y/ j* h, G1 d
        ●W5500网络控制器驱动
. O4 ^' D- z2 u' ]        ●SD/TF卡驱动
: H& p& Z- d7 s2 y        ●三基色LED驱动,支持HSV、HSL调色。6 J; v/ X+ Q2 B. R2 _! w" a
        ●WS2812单线最牛三基色LED控制器,内部自带gamma校正,软件支持HSV、HSL调色。
$ [4 X5 d" B* l" G8 t在限定的格式下下出来的驱动可移植性是非常高的。只要是基于eBox固件库编写的驱动,不需要做任何修改即可用于不同的项目中,当然初始化那个接口中包含了你自己的硬件连接信息。驱动架构在编程指南中有详细介绍。此处不再啰嗦。4 B* c, W& W% f( ~
六、标准应用层
* X4 M- [: D8 ?& o1 n        ●常用工程数学、控制库(正在更新。。。)
7 H6 f1 R  o+ t% e! P+ d        ●网络通信
2 s; T1 q; v% v8 c! V5 D        ●文件系统; _. D2 q8 N! Q  |1 V  m
        ●色彩控制、转换器
% X, `  q& _5 u; ]( N' R        ●等等
& i5 }) w1 W6 U; g) t5 e这一层提供了通用的应用软件,包括通信、文件系统、一些数学、控制算法。方便用户在不同的应用领域的使用。& T' N. ~, D/ i# T; b( l
七、操作系统: s; b" w- J! H1 Q# d
        自己写的(调度思想是大牛mango提供的)一个全抢占式操作系统。最大支持32个不同优先级任务(优先级不能相同),支持CPU使用率的统计,任务堆栈使用率的统计,任务的挂起。最大的特点就是简单高效,容易上手。
) z3 [2 x0 Q+ f8 [, q6 u用户可以根据自己的习惯是否使用操作系统。( h& O. ^- z* T/ v! P6 s8 o
到此软件基本的状况就是这样了,下面简单的说下硬件
- J+ n# M# {- R, V8 u1 `4 yeBox-SPARK6 K  \) T* m" b  _, E/ o3 F
寓意:星星之火、亦可燎原。希望能让更多的用户参与eBox生态圈的发展中,成为大家都认可的平台。方便大家使用。0 t  B" l: K: i+ k; S1 D; N# |$ ~
上图
& p3 R9 N! A! Q' x* b ( X" e  A1 e! m2 F/ k5 ~9 m4 O2 i
7 G- z: |" E' N2 q' p0 ?
这是硬件的基本情况、主控选择了STM32F103C8T6,外设主要包含了一个W5500网络控制器、SD/TF卡、按键、LED。
4 p, c" a" I' P6 f' u; @2 g8 K, G" K为什么没有添加更多的外设?
0 c& j7 J1 g! C/ z$ K3 r一是成本考虑、二是必要性的考虑。SPARK主要是为了引导大家入门eBox的编程。用排针的方式引出来更通用,可以让用户连接自己的外设,做实验。
1 R% A6 r: B% C3 F! meBox的宗旨:  I* w5 z# _3 |3 s
彻底简化STM32编程、打造eBox生态圈!
+ {4 ^) z3 S/ h9 _8 O( A& Y9 _+ D: j1 @9 g0 w) ^
eBox最大的亮点在于,开源驱动的共享。以后每个人写的代码上传到咱们论坛里,让坛友下载后即可以使用。我一个人能写的驱动数量是有限的,只有更多人参与进来才能让驱动丰富起来!% C. I+ }4 F8 b/ ]8 S. U  ^
目前核心内容趋于稳定,才面向大家提供了资料,日后会经常更新的。% A8 `' C1 i3 A. n* O
eBox花费了我的大量精力和时间,其中包含了无数个通宵达旦和大把的人民币。。。2 ]  c# t" k2 ?/ G
希望坛友支持下!
0 r# z- a) l& N2 ggithub源码下载地址:http://github.com/eboxmaker/ebox_stm32: H4 c" b, q" i  D' ?1 T
教程
- Y1 G: n* W& k6 ? 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,但是很多底层配置比较麻烦。但是有点事快速搭建和测试。; a* |9 ~/ N& d
pythonworld 回答时间:2016-1-14 20:20:36
对固件库的更高层次的封装.能用ARM GCC编译吗?是不是跟mbed有点类似,但是层次更高.+ |4 g) m: g- w3 o3 H8 ?
文档很详细.心血之作!!!!!
# \* y% L" j/ q8 q% [* G
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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版