完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 小小小菜 于 2014-3-4 19:45 编辑
对于stm8,用库函数操作,上手容易,但是有好也有坏。这次手头上用到的是8S003这个芯片,如果上库函数,8M的内存很快就会被消耗殆尽,所以只能上寄存器操作,其实自己本人是比较喜欢直接操作寄存器的,对于stm8来说,寄存器也不是特别的多,一个一个来配置也不是特别麻烦,对于底层,也能有一个较好的了解,而除了前边所说的内存优势,执行效率也是有所差别。 stm8的iic,网上可谓是骂声一片啊,哈哈,这次调试之后发现确实是不够优秀,操作繁琐,而最重要的一点便是通讯速度的控制,通过对时钟寄存器的操作,来选择通讯速度,可是却和通过手册公式所计算出来的有很大差别,而最要命的一点是时钟上升沿时间,在寄存器中有一控制上升时间的寄存器,可是实际中通过示波器观察波形发现却是没有多大效果,或者说是没有效果(我的电路连接是iic引脚挂载一个24C02从设备,上拉电阻4K7)。 实际测试中,上升时间非常慢,对于100K的速度来说,这个上升时间太长了,再加上干扰或其他因素,极有可能大大降低通讯的可靠性。测试了一下,100K的速度,能正常驱动24C02(未长时间大数据量测试),而上400K的速度,通讯失败是常有的事。而手册中却是说着支持100K和400K的速度,且还有寄存器位专门来设置400K速度下的配置,正常来说是应该能上400K的速度才对。不知是否是我理解有误,配置的不好...! 谁弄过这个iic的,交流一下...! 上传我的工程文件,STVD,程序中各种while()的等待均没有设置超时退出。 程序是通过运行后在仿真窗口中观察变量来确认对24C02的读写。
评分 |
|
|
相关推荐
|
|
|
STM8驱动IIC的例子挺多的 楼主找一下
STM8硬件IIC: http://bh7kqk.blog.163.com/blog/static/1274122912010102422751666/ STM8S硬件I2C读写2个24C02 http://www.amobbs.com/archiver/tid-5458920.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
楼主有解决没有?现在遇到同样的问题
|
|
|
|
|
|
|
|
|
我用的库函数,倒是没有被卡死,不过读数不正确,有时候能读一部分,有时候就没有?示波器上面显示就是高电平,楼主你觉得这是怎么回事呢?》
|
|
|
|
|
|
|
|
|
ttttttttttttttttttttttttttt
|
|
|
|
|
|
|
|
|
不错,看看,支持一下
|
|
|
|
|
|
|
|
401 浏览 0 评论
533 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
4253 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3059 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2602 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 12:29 , Processed in 0.942788 second(s), Total 79, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖