树莓派学习笔记:
单总线(1-wire)通信设备的初始化和控制(以DS18B20为例),包括如何更换通信端口
1 初始化
首先肯定是现在 raspi-config 里面打开相应的设置,或者在可视化界面里的Raspberry Pi Configuration里设置。
或者
设置好之后,实际系统在 /boot/config.txt 文件末尾添加了
dtoverlay=w1-gpio
我们可以在 /boot/overlays/README 文档里面用 Ctrl+F 查找 “w1”,可以搜到如下结果
可以知道,这个变量可以有参数值,gpiopin ,默认的值为 “4” ,注意,这个值为BCM编码, 这就是为什么很多教程直接用的就是 GPIO.7 口
如果想更换自己选择的端口。则需要在刚刚的 /boot/config.txt 文件加的那句话后加 “,gpiopin=你想要的数值”,以 GPIO1 为例。
dtoverlay=w1-gpio,gpiopin=18
然后保存,重启,单总线的通讯接口就被改成了GPIO1
2 读取总线设备
想要查看单总线是否启动成功,可以用 lsmod 命令
pi@raspberrypi:~ $ lsmod
可以找到相关的模块,然后可以用以下命令对单总线进行初始化
sudo modprobe w1-gpio
sudo modprobe w1-therm
初始化后可以在 /sys/bus/w1/devices 里面找到 28-xxx 的文件夹就代表 DS18B20 读取成功了,该文件夹里 w1_slave 里面装的就是读取的温度值,t=33000 就代表现在是 33.0摄氏度 。上面 crc 为CRC校验码。怎么使用DS18B20不是本文的关键,就请读者们自行发挥想象力吧。