09年6月的时候,大虾网(http://www.daxia.com/bibis/)为了增加人气,并且迎合当前火红火红的STM32潮流,故大虾网的版主丁丁老大委托本人开发一个实验板.作为网站论坛的发帖奖品(10月1号已经截止了,送出了不少板子).当时丁丁老大的计划是只做一个简单的板子,加点LED和按键,黑白液晶屏.但在后来的不断讨论中,觉得市面上已经有很多这样的简单实验板了,再做下去似乎没什么必要,于是就打算做中高端配置的实验板,集成高端的功能,中端的价格.所以最后选择了使用103VC.并且板上还扩展了103系列所缺少的USB HOST和NET功能.为了有点创意,成为网上唯一一个双屏实验板,于是就彩屏和黑白屏都加上.
于是最后,DX32实验板就是大家所看到的那样了,DX就是大虾的意思,大虾三十二.在后来的几个月的销售中,验证了当初DX32设计意向的正确,因为那时候总在想着107系列出来后,需要网络系统的人应该就不会使用103了.但结果是,107出来了,却没任何让人惊喜的地方,107VC系列售价超过40元,再加上需要外接PHY芯片才能实现以太网功能,使得单一需求以太网的STM32方案CPU部分的成本变成5X元以上,软件部分还受制于STM32官方发布的OTG库和网络库.相比之下103+28J60的方案在价格上首先肯定便宜10元以上,其次由于28J60已经流行不少时间,网上随便一搜就可以找到了28J60的很多开源代码,这使得很多人都转会使用CPU+NET芯片的方案.这也使得DX32至今一直保持良好的销量.
双屏方案是当时丁丁老大要求的,最后这个方案也得到大家的认同.毕竟在实际的公司项目中,并不是每个人都有幸使用彩屏的.玩过黑白和彩色人机界面的朋友应该了解,其实彩色大屏的设计比黑白屏舒服简单得多.原因之一是黑白屏的写点操作比彩屏要复杂,之二是大屏的发挥空间要比小屏多得多.在DX32的开发计划表中,彩色GUI之后,就要准备做一些黑白小屏的应用设计,设计的意向是模块化,硬件底层和应用层分开.使新手们除了学习外,还能直接拥有一套可以在日后使用的代码.
说到DX32的计划表,这可能是DX32实验板的一个特色.我们不妨看看网上大部分的实验板,例程都是天下一大抄,什么GPIO,ADC,RTC例程,仅仅把CPU的功能动一下,就草草了事.要不就声称移植了UCOS,UCGUI等一堆东西,不合用不说,更容易误导了新手走错了方向.你能想象一个刚从51就进入ARM领域的人,就要接受UCOS和足够复杂的UCGUI的教化么?说实在,当年本人拿着那本黑色的厚厚的UCOSII书可是花了整整一年的业余时间,才把UCOS的代码完全看完看懂.而往后,很可惜地,仅仅有一次用于实际项目上,之后就再也没有用过了.(现在早就忘记了UCOSII的代码咯~)
所以在设计DX32的时候,我一直在想着要出什么例程.华而不实,初期可以吸引客户,但时间长了,其实也只是一个空壳子;相反实而不华,则至少可以对得起自己的兴趣和行业.我所希望的,是大家拿着这片DX32在手上,1-2年后,还有机会在这个平台上实现自己的想法和功能.还能够把这个实验板拿出来和大家讨论一些实实在在的问题.而不仅仅是入了们了,学会了STM32这个CPU了,就直接把板子扔抽屉底再也不见天日;又或者是为了某些特别的喜好,例如用STM32播个MP3来听听,或者看到别人彩屏上有个贪吃蛇游戏,然后就屁颠屁颠地掏钱,最后买回来,听完了MP3,玩了下贪吃蛇,最后什么实在的东西都没学到.
所以,在你需要学习STM32的时候,首先要问自己,我学了,是为了什么,是为了将来在工作上能一展所长,得到同事上司的认可,还是买个东西回来逗乐一下自己?
好了,跑题了,说回DX32的计划表,因为DX32是以实际应用为主,也就是大部分出现在公司项目中的一些应用为主,所以DX32的用于进阶的程序,都是一些封装好的实用代码,例如键盘控制,触摸屏控制等.新手们可能没太认识到什么是封装好的代码.所谓封装,最基本的一点就是能软硬件分离,当然不一定很彻底地分离,但要很大程度上分离了.这套代码中,固定的一些部分是和硬件底层相关的,而另一些则是和软件应用层相关的,这样的好处是易于移植.例如一个键盘管理程序,会把基础读键函数和键盘消抖函数分离开来,那么你以后设计新的硬件的时候(包括连CPU都不一样的硬件),只需要简单地把基础读键的函数写一下,那么整个键盘的设计就算完成了.而作为一个工程师,这个键盘管理的程序的应用层部分,就是自己的一个宝贝代码了.在以后的很多项目上,直接把这个宝贝COPY出来作为一个C文件,然后自己再加进基础读键的函数,10分钟不用就完成了键盘处理.作为一个有经历的工程师,他们自己兜里可是有不少这些实用模块代码的:)
而DX32的高级例程,则是非常多这类封装好的模块函数.DX32的计划表就是在于把我们很多嵌入式工程师用到的各个模块代码都写成封装代码,并且逐一发布.这是一个需要花时间的大工程,而且先发表什么,后发表什么,都在DX32的计划表中.现在已经发布了的代码是键盘模块,动态内存开辟模块,SD卡应用模块(使用国外爱好者的的FFT程序,效率不错),现在进行中的计划(到2009年末),就是DX-GUI.这是一个很适合中档系统用的GUI,比起大家很爱讨论的UCGUI,这个GUI更着重于中档系统的应用,适合资源较少的系统.(事实上AVR等CPU也适合用的,而UCGUI这类,ARM9以下用起来都会有点吃力).DX-GUI后,就是DX-CAN的计划了.这个计划预算要在2010初才能开始了.DX-CAN之后,是DX-NET网络代码模块,再就是DX-UPDATE,一个使用SD卡或者U盘可以实现更新程序代码的功能模块等一系列的计划~~所以,作为程序的主要设计者,本人的旺旺是长期隐身的,大家不要以为是因为我不想卖了,只是,要写好的代码,需要安静的环境...DX32大部分是以代理的形式出售的,大家看到淘宝上一次拍下N件的那些,其实都是代理商(可不要认为是本人的炒作呵呵~)
另外,由于DX32面向实用的例程会不断发布,所以DX32采用一个增值计划来让用户可以一直享受到代码升级的便利.也就是每个板子会有一个唯一ID,用这个ID作为标题,以自己的常用邮箱发邮件到dxstm32@gmail.com,就可注册你的邮箱了,之后的更新,都是通过邮箱发送的.如果发现代码有BUG,有改进的余地,大家也可以通过此邮箱发送信息给白菜,务求结合众人的力量,把板子的程序做好.
那么说到这里,大家对DX32的了解应该也差不多了,DX32作为淘宝上销量第一的STM32实验板,全赖大家的支持,希望这个实验板会成为将来你手上的实用利器吧:)