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条回答
辛昕
2019-03-24 05:29
额,stm8s+ds18b20搞定了,问题有2:
1.我在封装gpio时,IO模式为了简化,我只选择了初始化方向后,默认为低电平状态。所以......虽然这个地方我也想不太通,但是,把默认状态选择为高以后,即释放电平,复位问题就解决了。

2.我封装的读写函数耗时太长,所以读信号慢了。

一周热门 更多>