完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
stc12c5a60s2中文手册,最近,做项目,用到这个芯片。由于我开始接触硬件,所以学习缓慢。从暑假开始,到现在已经将近两个月了。
在第一段时间,主要看了7513和2810芯片它们的datasheet,很多寄存器,看的我头大。 第二段时间,开始学习stc12c5a60s2的使用。我有个试验箱,里面也有stc芯片,不过它是90的,而且有很多例程。我就对着历程学习。我对语言算法的了解还是不错的,所以大部分例程还是能很快看懂。知道了端口,寄存器的使用,SMON,PCON等各种用于串口初始化工作相关设置。写了串口通信的上位机程序(用的是C#语言),写了下位机,通过对上位机命令的读取,解析和执行。 第三阶段,也就是现在我在做的。要通过I2C协议,实现对7513和2810芯片的控制。在前段时间,我也看过I2C协议。这个协议已经有很多代码了,拿过来用就好。花费时间较多的地方是,I2C协议有器件地址和从地址,我对从地址这概念就一直很困惑,现在的理解就是从器件内部的地址。器件地址相当于班号,从器件地址相当于学号。 但是现在还没有实现,对7513芯片内部一个寄存器的写和读(我用的从地址是0x45),读出来的总是0,而且写进去后,再读还是0。用的是别人写的有子地址器件读写多字节函数,返回值都是1,表示函数执行完全正确,但是不知道为什么,结果是这样。 我猜测可能的原因如下: (1),我的读写方式错误。 (2),选的寄存器太特殊了。 (3),写之前要进行相关配置。 关于猜测一: 为此,我在网上搜了下别人关于该芯片I2C的算法,在pudn里面找到了一个人写的例程。里面读写调用的函数和使用方式和我的程序是一样的,说明我的第一条猜测是错误的。 PS:但是,我又发现了一个新的问题,它里面的I2C协议,它的scl和sda用的引脚是P2口的1管脚和0管脚。但是之前,我查文档就发现应该用的是P3口的4管脚和5管脚。我怀疑是自己错了,还是他错了。我把我的程序换成P2口,发现无应答,只有P3口才有应答,虽然返回值是0。我觉得应该是他错了。 关于猜测二: 我又试了其他寄存器,结果还是一样的,而且查阅了相关资料证明,这个寄存器是可以读写的。 关于猜测三: 当排除了以上两种猜测之后,只能在第三条道路上前进。 后记: 这个程序我已经调试了三天了,要是再调不好,不是我疯,就是导师疯了! |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
878浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:57 , Processed in 0.447694 second(s), Total 75, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号