srm8通过485传送温度给stm32

来源:互联网 发布:淘宝超a鞋店推荐 编辑:程序博客网 时间:2024/06/06 02:29

        继上篇之后,我又用stm8代替了51单片机,做了相同的事,就是因为老师比较喜欢stm8。因为有了前面的基础,所以做起来稍微比前面顺利。使用18B20的时候,为了得到精准的延时程序,我是用了示波器。首先自己用程序在某个引脚上产生一个方波,然后测周期,这样就可以得到准确的延时了。

        与上篇相比,我在stm8上多做了一个测水位的功能。因为测水位的电路有点问题,测得一个引脚的高低电平的值有问题,原来是mos管有问题,这个问题浪费了我不少时间。

       接下来说下几个困扰了我几天的问题。我把程序完整(把三个温度和水位值测出来并通过485通信传送到stm32)地写出来,并烧写到单片机中后,发现传到stm32之后,一个值都没有了。我检查了电路,觉得都没问题,也看不出程序有什么毛病。之后由于过急,我动了下电源线,结果一个电感突然起火了,我急忙把电源拔了,不然会出火灾了*^ο^*,换了个电感,虽然一个焊盘脱落了,但幸好还是能焊上去,幸好芯片没有被烧。再之后我就抱着试一试的心态,把stm32中的3485换了个新的,结果出现了数据。但是这时候又出现一个新的问题,有一个温度测不出数据,这个问题又浪费了我一天的时间,这个问题的原因是这个端口被AD转换的IO口初始化所占用,把那些无用的函数注释掉就没问题了。这时候还有最后一个问题,我需要传送的四个有用的数据,但是实际上要多传送一个无用的数据,这样才能把有用的四个数据都完好的发送。这是我经过了无数次改代码试出来的,突然就试出来了,作为一个码农就需要这样的精神*^ο^*

测水位原理图:

 

实物图:

 

0 0
原创粉丝点击