打印

玩转STR912—致所有还在奋斗ST9的菜鸟们

[复制链接]
2627|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyboy|  楼主 | 2008-10-29 11:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说声对不起,之所以起这个名字,主要是想吸引赢球,我本身也是菜鸟一个,希望与所有菜鸟共勉之。
自从选用STR912这款芯片后,当然是看中了这款芯片自带的网口这个功能,就开始郁闷的折腾的开始,网上一搜寻,该芯片的资料了少的可怜,不知道是ST推广力度够,还是芯片本身的市场应用的缺陷(多少感觉有点像**肋)。
在开发中,遇到不少问题,网上求助的不少,但都是无人问津。现在想想并不少网上没有高手,只是问问题这种事情,问题的原因可能太多,他人是无法确切了解你软硬件的设计,只能猜想一些,我就见过一个人在帖子上发问题,下面回答的也很热烈,什么延时呀,电流呀,上拉电阻等等,最后那个人自己澄清是一个引脚虚焊了。。。。所以我觉得当你提问后有人正好能解决,那相当于你买彩票中奖了,大多数只能靠自己了。
言归正传,跑到ST网站下了GPIO的例子,开始嘛,当然从跑马灯学起嘛。程序下载,一打开就加了N多文件,心想一个IO至于这么变态。原来是ST已经把各个功能模块封装成库了,我们对I/O操作,根本不需要和寄存器打交道了,只需要调用库里面的函数就可以了,就像IAP函数一样,只需要只能参数的含义就可以了。我心里想,这到底是好事还是坏事,这样工程师甚至在了解寄存器的,不用看用户手册,就可以开发了,这也就是说如果来一个新人,他也能很快的上手,开发Easy了(注:库是会有bug的,所以小心)。
我TMD的心想,你搞再简单一点呀,最好启动代码也省了,弹出一个对话框,你只要输入,中断向量表的函数名,地址,堆栈名,堆栈地址什么的,它自动生成得了。或者更牛X直接出厂的时候就把各种驱动BSP烧好,我就自己直接像VC一样在上位机开发得了。
I/O调试没费多长时间,这个也没必要讲了,只是觉得一个很简单的I/O翻转指令,用库文件写起来就变得复杂了,当然你可以直接找个指针直接指想该寄存器的内存地址,对寄存器直接操作。后来开始调试I2C 。当然了,没看数据手册,直接跑例程了。
问题1:看到例子有这样的句子while( ! I2C_CheckEvent(I2C0, I2C_EVENT_MASTER_MODE_SELECT) ); 心想这样给个例子也太不负责了,这I/O一出问题岂不要死在这里,我搞了一个循环while判断,至于这个时间,由你的I2C速率决定,这样保证了不死机。
问题 2: 热插拔导致I2C死锁,I2C不支持热插拔,打算在下一版加一个热插拔芯片,不知道有没有用?现在只好通过软件解决,当I2C通信出问题后,将I2C重新初始化。当然有时候是主导致从死,有时候是从导致主死,具体问题具体分析。
问题3:I2C广播包。由于从我采用中断方式,直接用它的库,你会发现它没有考虑这种情况,那就自己添加吧,就是寄存器这个I2C_FLAG_GCAL
对应普通的包有定义
#define  I2C_EVENT_SLAVE_BYTE_RECEIVED     ( I2C_FLAG_EVF | I2C_FLAG_BUSY | I2C_FLAG_BTF )
自己添加
#define I2C_EVENT_SLAVE_BYTE_RECEIVED_GCAL ( I2C_FLAG_EVF | I2C_FLAG_BUSY | I2C_FLAG_BTF|I2C_FLAG_GCAL )

写到这里,让高手见笑了,以后还想重点写网口调试的经历,从硬件,软件,远程下载,可谓处处碰壁,那可是折腾的不行了,但我相信一句话what doesn't kill me makes me stronger!
沙发
missyou198| | 2008-10-29 14:54 | 只看该作者

支持一下

写的不错,我刚接触不到2周,现在整天被折磨的很闹心,希望大家一起进步

使用特权

评论回复
板凳
and| | 2008-10-29 22:22 | 只看该作者

哇,912,很好!

用了一年多.

使用特权

评论回复
地板
snowdance| | 2008-10-30 16:33 | 只看该作者

我也在用STR912

    用了一个月,有些地方还真不适应,尤其是那些库,还有它的中断,其原理我至今还没有弄得十分明白,感觉有点乱,目前调用库文件勉强可以用,先凑合着把项目弄完再说吧。
    IO口确实搞得太复杂了,本来有个GPIO_DIR寄存器用来设置IO口的方向,可是方向还要和SCU_GPIOOUT来配合使用。I2C看了一下,也太复杂了,于是想用IO口模拟,但是在改变IO口输入输出方向时总出问题,那个设置是PUSHPUL方式还是Open collector方式的选择好像总有问题。
    这东西还真是个**肋,主频吧,算下来刚比STM32高一点,价格优势又不明显,还挺难弄。打算这个项目弄完就不考虑用它了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

356

帖子

0

粉丝