eBox生态圈:简化STM32编程,4个月完成eBox固件库(申精)

2019-12-14 12:37发布

本帖最后由 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建立的
106条回答
shentqlf
1楼-- · 2019-12-14 14:39
本帖最后由 shentqlf 于 2015-10-15 22:28 编辑

上传一个模拟量读取的代码
  1. //STM32 RUN IN eBox
  2. #include "ebox.h"
  3. void setup()
  4. {
  5.         ebox_init();
  6.         uart1.begin(9600);
  7.         PA7.mode(AIN);
  8. }

  9. int16_t x;
  10. int main(void)
  11. {
  12.         setup();
  13.         while(1)
  14.         {
  15.                 x = analog_read(&PA7);
  16.                 uart1.printf("hex = %05d ",x);
  17.                 x = analog_read_voltage(&PA7);
  18.                 uart1.printf("val = %04dmv ",x);
  19.                 uart1.printf("============== ",x);
  20.                 delay_ms(1000);
  21.         }
  22. }
复制代码
再看一个pwm的代码,频率1K,占空比50% = 500/1000*100%
  1. //STM32 RUN IN eBox
  2. #include "ebox.h"

  3. PWM pwm1(&PB8,1000);

  4. //STM32 RUN IN eBox
  5. void setup()
  6. {
  7.         ebox_init();
  8.         pwm1.set_duty(500);

  9. }


  10. int main(void)
  11. {
  12.         setup();
  13.        
  14.         while(1)
  15.         {                        
  16.         }
  17. }
复制代码
shentqlf
2楼-- · 2019-12-14 17:11
本帖最后由 shentqlf 于 2015-10-17 18:24 编辑
kinsno 发表于 2015-10-17 15:33
说好的OS代码呢,没发现呢?


昨天喝高了~~~
导致昨天没能及时更新,对不住网友了。。。
今天整理了下,把操作系统的代码搞上来。
遗留问题:由于核心代码以lib的形式发布,编译器不会重新编译,导致ebox.h中的
#define USE_OS即使设置为1也不会去重新编译核心代码。所以我重新发了一个带os的固件库。一个是
#define USE_OS 0不带操作系统
#define USE_OS 1带操作系统
两个版本。

全部功能 os(更新过).rar (719.4 KB, 下载次数: 310) 2015-10-17 18:23 上传 点击文件名下载附件

shentqlf
3楼-- · 2019-12-14 21:17
 精彩回答 2  元偷偷看……
shentqlf
4楼-- · 2019-12-14 22:31
本帖最后由 shentqlf 于 2015-10-29 23:58 编辑

修改一个bug。由于笔误导致的串口1的接收中断无法进入。已修正。
工程样板.rar (1.95 MB, 下载次数: 145) 2015-10-29 13:16 上传 点击文件名下载附件

shentqlf
5楼-- · 2019-12-15 02:04
vc8fans 发表于 2015-11-6 13:29
都差不多一个月了,总听楼梯响,不见下楼人?????

ebox目前已经开始众筹。众筹链接http://z.elecfans.com/2。我不太清除此楼是否有违阿莫论坛的相关规定。如有可以通知我,可以将此楼删除,或者直接删除此楼回复
shentqlf
6楼-- · 2019-12-15 06:45
上传一个最新版本。固件只修改了一些函数名称和变量名称,没有大的改动。
驱动增加了一些
最大的改动是网络部分,网卡的驱动,socket、tcp优化了很多bug,添加了dns。最重要的更新是添加了MQTT的支持
shentqlf
7楼-- · 2019-12-15 08:28
yerrmin 发表于 2015-11-26 17:03
楼主可以创建一个git版本库,这样代码太乱

github已经开通
https://github.com/eboxmaker/ebox_stm32
shentqlf
8楼-- · 2019-12-15 12:38
 精彩回答 2  元偷偷看……
ppdd
9楼-- · 2019-12-15 12:55
支持!!!!!! 抢到了一个沙发!
farmerzhangdl
10楼-- · 2019-12-15 16:04
看起来介绍不错,支持一下