【MicroPython】DS18B20+UART

xinmeng_wit   2016-4-24 19:12 楼主
从拿到MicroPython的板子,一直没有正式发过帖子,两周以来其实一直都在捣鼓这块心爱的小板。由于之前对python完全不了解,这两周是一边看python一边折腾板子。之前还在一直发愁这个18b20的驱动呢,直到看了@dcexpert版主的帖子【MicroPython】使用DS1820单总线温度传感器,才知道官网有这个驱动,拿来一试,果然好使,于是结合UART将温度传感器的值发送到上位机那是顺理成章的事情。在这个过程中,我发现MicroPython和Python还是有一些差别的,并不是完全一样,要是完全一样,我觉得用起来会更方便。在将温度传感器读到的浮点的温度值转换为字符型的时候,开始用的map()函数,发现不好使,但是在python2.7上是可以的,没办法,最后用了格式化字符串的方法,类似于vc++里面的format()函数,用起来倒也还是挺方便的。 18B20的驱动这里就不贴了,贴上main.py文件。用定时器时间周期读温度数据不知道为什么总是进不了中断,只能用while True了。
  1. from pyb import Pin,UART,Timer
  2. from ds18x20 import DS18X20
  3. uart=UART(1,9600)
  4. tim=Timer(1,freq=5000)
  5. tim.counter()
  6. tim.freq(0.5)
  7. Pin("Y11",Pin.OUT_PP).low()
  8. Pin("Y9",Pin.OUT_PP).high()
  9. pyb.delay(100)
  10. d=DS18X20(Pin('Y10'))
  11. while True:
  12. t1=d.read_temp()#读取DS18B20的温度
  13. t2='%.3f' %t1#将浮点数转换为字符串
  14. uart.write('DS18B20当前温度:')
  15. uart.write(t2)#UART1发送字符串
  16. uart.write('℃')
  17. uart.write('\r\n')
  18. pyb.delay(4000)
自己写的一个简单的串口助手,由于时间仓促,功能比较简单,界面比较丑陋,后期再根据功能重新做界面。
2.bmp
发现还是对python语言还是非常不熟悉,后面还得继续学习。后面如果时间允许我想上位机也用python来做,非常想看看用python做出了是什么效果。一起加油吧。
本帖最后由 xinmeng_wit 于 2016-4-24 19:14 编辑

回复评论 (3)

不错,上下位机结合使用,赞
点赞  2016-4-24 19:52
定义了定时器,但是后面没有使用。
点赞  2016-4-24 20:27


之前使用了,因为没有成功所以删了
点赞  2016-4-25 13:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复