stm8s的IO口,怎么才能释放总线

2019-03-23 18:19发布

用的是 stm8s discover开发板,嗯,就是说,MCU 是 stm8s105c6t6

对于stm8这种分IO口方向的片子,到底要怎么设置,才算的上 释放总线?
51的是双向口,写高就释放了,没什么。
但它呢?
输出方向,写高,算不算释放总线?
如果直接设置成 输入方向,是不是也等于释放了总线——因为它不再写出东西啊。


问题是出在,最近在它下面做一个 ds18b20的程序。
时序也调了,而且还用逻辑分析仪对着看,按道理,那时序是够严格的了。

但依然是,复位能找着器件,但是,读写就是不行,读出来的两个温度值始终是

0xff 0xff

用逻辑分析仪看了一下 协议分析,发现只有 复位时序,没有读也没有写,压根和网上看到的波形不一样。

不排除 逻辑分析仪质量有问题——其实我觉得不像。

我以前在51下做过,虽然也费了劲,但是做成功了,而且当时我都还不需要用 逻辑分析仪 调时序。

事儿搁着有几天了,着实很郁闷。

想了想,大概有两个原因:
1.我怀疑自己在淘宝上买的那10根不锈钢封装的ds18b20有猫腻。
  所以对此,我另外买了四根ds18b20管子——不过,最近忙别的,所以也就先放着没动;
2.上面那个怀疑其实我自己也觉得不太靠谱,那想来想去,和之前51的区别,肯定就在于 IO口的模式上的理解了。

看了一些网上的资料,都说要 释放总线,但我想不明白,对于stm8这种分IO口方向的片子,到底要怎么设置,才算的上 释放总线?

51的是双向口,写高就释放了,没什么。
但它呢?
输出方向,写高,算不算释放总线?
如果直接设置成 输入方向,是不是也等于释放了总线——因为它不再写出东西啊。

查了查百度,翻了一下stm8s105c6t6的pdf和编程手册,还是没看到相关的介绍。
请知道的兄弟给指教指教,谢谢! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
weikezhi
1楼-- · 2019-03-23 19:36
/ 你把SDA引脚外接上拉,设置成开漏输出高阻态,就可以当51用了。
辛昕
2楼-- · 2019-03-23 23:08
SDA?
单总线只有一条数据线,是指连接那个的IO吧。

敢情,我设置成 IN_FL才是对的?!
辛昕
3楼-- · 2019-03-24 02:04
 精彩回答 2  元偷偷看……
辛昕
4楼-- · 2019-03-24 05:29
额,stm8s+ds18b20搞定了,问题有2:
1.我在封装gpio时,IO模式为了简化,我只选择了初始化方向后,默认为低电平状态。所以......虽然这个地方我也想不太通,但是,把默认状态选择为高以后,即释放电平,复位问题就解决了。

2.我封装的读写函数耗时太长,所以读信号慢了。
菡轩氏
5楼-- · 2019-03-24 07:24
楼主能不能给我一个能用的18b20程序,我也遇到读出来全是1的情况。邮箱1015043947@qq.com

一周热门 更多>