自制STM32开发板实现了ENC28J60网络,LCD,蓝牙串口,SD卡
一直想自己做一个网络开发板,可以进行TCP/IP通讯,前几天做了一个,发现还行,一次性成功,呵呵,自己庆贺一下。说明一下我的软件环境和使用的类库:
开发环境:MDK3.50。
实时操作系统:RL-RTX
TCP/IP协议栈:RL-TCPnet
文件系统驱动:RL-FlashFS
这里之所以全部使用Keil的Real-Time Library (RL-ARM).是因为它用起来也比较简单,而且功能也十分强大。
关于文件系统,由于RL-ARM中的库和编译环境结合的很紧密,所以只要实现一个基础函数重定义就可以像PC上使用文件系统一样使用SD卡了,如,fopen,fread,fwrite之类的。
关于TCP/IP协议栈与ENC28J60,我想说一下的就是,RL-TCPnet虽然用法简单(包含库,再配置一下即可,毕竟是KEIL自家针对KEIL开发环境做得),功能也十分强大,但是,我用的时候还是有一些问题,比如说我使用其WebServer的时候,使用IE内核的浏览器范围,没有一点问题,但是使用FIREFOX,就有可能出现问题。这令人有点郁闷。不过整体感觉良好。而TCP/IP协议栈还有uip等,我也用uip做过一些实验,也成功了,就是嫌uip配置有点繁琐,搞得也有点郁闷。ENC28J60在使用过程中也出现了很多问题。我主要是综合了网上下的各个版本的ENC28J60驱动,发现由于这个IC的各个版本有不同的BUG,就要根据其ID来做Errata, 起初的现象是运行一段时间就挂了,搞得我比较郁闷,后来没有办法,自己到PIC的网站上去下了一个免费的TCPIP协议栈,里面刚好包含ENC28J60的驱动程序,把其中关于发送,接收,初始化的部分COPY过来,呵呵,就行了。
这里我给出我的硬件原理图和全部软件代码,供大家一起参考,共同学习。
====================================================
关于上面提到的在FIREFOX里面运行不正常的问题,我找到了,不是TCP/IP协议栈的问题,而是我的堆栈的大小太小,导致了BUSFAULT,估计是Firefox和ie内核的浏览器的行为不一致,导致其所需要的文件数量不一致的原因。另外,我的web server是基于RL-FlashFS的,所有的网页和相关文件都是放在SD卡里面,如果是直接放到芯片的FLASH里面则不会出现上述问题。想想,要让这些东西都跑的没问题,还真是要耗费一些资源,现在已经用了大概40K左右的RAM了。
**** Hidden Message *****
来学习支持一下 kanyixaxiexie le 支持一下 来学习一下 不断学习中
支持一下 正好需要来学习一下 学习下 感谢分享