
本帖最后由 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 教程 ![]() |
文档很详细.心血之作!!!!!