本帖最后由 shentqlf 于 2015-10-15 22:08 编辑
四个月。。。真是不知该从何说起,这四个月应该说是,除了上班,剩下的时间都贡献给eBox了。
鄙人接触STM32有些年头了,也做过很多工程项目首选的控制器就是STM32,觉得STM32还是比较好用的一款芯片。随着项目的增多,发现每次做电路板回来都要调试板子上各种芯片的驱动,即使以前写过的驱动,也得修改IO等其他配置,说心里话
STM32的配置还是比较复杂的,我倒现在都没记住所有硬件外设的配置方法,每次都要查阅手册和芯片资料,不知各位大侠是不是也有此感觉。所以就心生念头,解决这个问题,让STM32像Arduino一样!这就是eBox最开始的想法。ST官方好像有个
maple,但是我没用过,就看过几眼介绍,然后决定不喜欢。然后就是4个月的熬夜。。。到今天终于完成了软硬件!!!
一、了解什么是eBox
eBox是一个运行在STM32平台上的涵盖了驱动层、系统层、标准应用软件层、用户软件层和bootloader的软硬件一体化的解决方案。丰富的标准驱动和标准应用,像用Arduino那样方便,性能又远高于arduino。操作系统的支持让eBox满足多任务系统的需求;标准应用为你提供多种控制算法、通信协议,满足不同应用场所的需求。
二、程序架构
z5.jpg (39.54 KB, 下载次数: 1)
下载附件
2015-10-15 18:20 上传
这是硬件的基本情况、主控选择了STM32F103C8T6,外设主要包含了一个W5500网络控制器、SD/TF卡、按键、LED。
为什么没有添加更多的外设?
一是成本考虑、二是必要性的考虑。SPARK主要是为了引导大家入门eBox的编程。用排针的方式引出来更通用,可以让用户连接自己的外设,做实验。
eBox的宗旨:
彻底简化STM32编程、打造eBox生态圈!
eBox最大的亮点在于,开源驱动的共享。以后每个人写的代码上传到咱们论坛里,让坛友下载后即可以使用。我一个人能写的驱动数量是有限的,只有更多人参与进来才能让驱动丰富起来!
目前核心内容趋于稳定,才面向大家提供了资料,日后会经常更新的。
eBox花费了我的大量精力和时间,其中包含了无数个通宵达旦和大把的人民币。。。
希望坛友支持下!
放个淘宝连接:
https://item.taobao.com/item.htm ... ;abbucket=16#detail
不知道算不算阿莫先生认为的广告贴。。。如有不妥,我就删除了连接。希望莫大网开一面,资料是第一个传至本坛的。
eBox-SPARK原理图.pdf
(445.22 KB, 下载次数: 528)
2015-10-15 18:15 上传
点击文件名下载附件
1.ebox概述.pdf
(393.84 KB, 下载次数: 531)
2015-10-15 18:15 上传
点击文件名下载附件
2.ebox编程指南.pdf
(707.77 KB, 下载次数: 730)
2015-10-15 18:15 上传
点击文件名下载附件
3.eBox标准API手册.pdf
(371.53 KB, 下载次数: 699)
2015-10-15 18:15 上传
点击文件名下载附件
4.ebox-spark-board.pdf
(283.45 KB, 下载次数: 406)
2015-10-15 18:15 上传
点击文件名下载附件
工程样板.rar
(7.36 MB, 下载次数: 745)
2015-10-15 18:17 上传
点击文件名下载附件
工程是MDK5建立的
上传一个模拟量读取的代码
- //STM32 RUN IN eBox
- #include "ebox.h"
- void setup()
- {
- ebox_init();
- uart1.begin(9600);
- PA7.mode(AIN);
- }
- int16_t x;
- int main(void)
- {
- setup();
- while(1)
- {
- x = analog_read(&PA7);
- uart1.printf("hex = %05d
",x);
- x = analog_read_voltage(&PA7);
- uart1.printf("val = %04dmv
",x);
- uart1.printf("==============
",x);
- delay_ms(1000);
- }
- }
复制代码再看一个pwm的代码,频率1K,占空比50% = 500/1000*100%
- //STM32 RUN IN eBox
- #include "ebox.h"
- PWM pwm1(&PB8,1000);
- //STM32 RUN IN eBox
- void setup()
- {
- ebox_init();
- pwm1.set_duty(500);
- }
- int main(void)
- {
- setup();
-
- while(1)
- {
- }
- }
复制代码昨天喝高了~~~
导致昨天没能及时更新,对不住网友了。。。
今天整理了下,把操作系统的代码搞上来。
遗留问题:由于核心代码以lib的形式发布,编译器不会重新编译,导致ebox.h中的
#define USE_OS即使设置为1也不会去重新编译核心代码。所以我重新发了一个带os的固件库。一个是
#define USE_OS 0不带操作系统
#define USE_OS 1带操作系统
两个版本。
修改一个bug。由于笔误导致的串口1的接收中断无法进入。已修正。
ebox目前已经开始众筹。众筹链接http://z.elecfans.com/2。我不太清除此楼是否有违阿莫论坛的相关规定。如有可以通知我,可以将此楼删除,或者直接删除此楼回复
驱动增加了一些
最大的改动是网络部分,网卡的驱动,socket、tcp优化了很多bug,添加了dns。最重要的更新是添加了MQTT的支持。
一周热门 更多>