一开始,查阅DS2431的数据手册,根据上面的逻辑写DS2431的代码,写了好久,代码是出来了,可是就是不能正常工作。 后来发现了这个方法,简直太好用啦,真是方法才是王道呀,平台才是王道。 一:修改配置文件sudo nano /boot/config.txt 在/boot/config.txt文件的最后一行加上dtoverlay=w1-gpio-pullup,gpiopin=4(管脚为BCM编号) 注: 其他资料说是gpiopin=4的管脚号可以更具自己的需要随意修改,根据本人的反复试验,发现当修改了管脚号后,树莓派无法识别出该器件,故为保险起见:建议不要修改,就用4号管脚。 经查阅大量资料:在《精通 Raspberry Pi》([美] Warren Gay著 张龙杰 陈青华 刘勇 译)(2015年11月第一版)书中162页: Raspbian linux驱动程序支持GPIO 4(P1-07)上的单总线。这个引脚硬编码在内核驱动程序中。如果想改变它,在源文件中寻找W! GPIO的定义: arch/arm/mach-bcm2708.c 将W!_GPIO的定义(在第73行左右查找)改到你需要的引脚上: //如果可以,使用GPIO 4作为单总线GPIO 引脚 #define W1_GPIO 4 接下来,当然,你需要重建并安装新内核。 二,重启树莓派,使之前的配置生效动态加载需要用到的内核模块 sudo modprobe w1_ds2431 sudo modprobe w1-gpio 运行lsmod命令,发现所需要的模块已经启动了 三:如果上述步骤没有问题,那么接下来,就可以操作DS2431啦cd /sys/bus/w1/devices 就会看到下面的文件夹 图中以2d-....的文件就是DS2431的设备文件 进入该目录,会发现有eeprom的文件,就是DS2431的存储文件 通过cat eeprom就可以读出里面写入的内容,图中的内容就是我写进去的 注:写入文件时,一开始我使用sudo echo "qcq"> eeprom 发现总是提示:权限不够 后来我用 sudo nano eeprom打开文件,像普通文件一样写入数据,就没有问题了。 方法参考(链接) 博文索引 持续更新中。。。 |
|