
之前我的板子已经可以运行Linux4.2,但是那时还没有STM32 ADC和DAC的linux驱动。后来通过查看linux主线源码发现4.1x版本里已经有这个驱动了,于是我有了升级linux kernel的想法。整个过程总的来说还算比较顺利,kernel编译,busybox文件系统制作,rootfs 映像制作都是按照网上搜索的方法加上自己的总结做的。然后下载映像到板子上启动,OK。; S6 D. Y. W1 c5 S ! U" y8 O" ~* |7 m 一、检查ADC、DAC驱动设备文件,linux系统将这两类设备都归为IIO设备,可以在/sys/bus/iio/devices目录下找到,我创建了两个设备iio0 adc, iio1 dac ![]() ![]() 二、测试ADC,linux通过读取adc设备文件获得采集到的ad值(STM32F429的ADC是12位的,对应量程0-4095),由于引脚悬空,所以读取的值是浮动的。 ![]() / U: {5 d1 ~; m5 O 三、测试DAC,linux可以通过echo命令写dac设备文件来改变da输出值(STM32F429的DAC是12位的,对应量程0-4095)。7 I8 J, F1 V* Y/ o0 P+ m2 R9 Z ![]() 最后,我短接了PA5和PF10引脚,来个ADC测量DAC。从下图可以看到DAC输出4000,ADC测得3999;DAC 2000,ADC 2015;DAC 1000,ADC 1001;马马虎虎还算比较准确吧 ![]() ' J2 u8 w8 B; D* X1 D ![]() 2 V B5 F+ c, x0 H$ }! `( i. u1 y |