拿到板子也有段时间了,这段时间还是在研究这款单片机的ADC采集功能,今天是终于把这个程序能发出来了,程序匆忙没来得急整理,大家有能力可以自己下载实验,再阅读,在这里也总结下比较坑的地方。下面来看。 官方给的图中我们可以知道所接这几个电阻器的位置,分别对应,PA1,PA4,PA5,所以初始化我们也一样,这是初始化的配置。 ADCSingleChannelInit(ADC_Channel_1); ADCSingleChannelInit(ADC_Channel_4); ADCSingleChannelInit(ADC_Channel_5); 本次实验是使用了ADC的DMA传输方式,好处不用多说,其中大家可以参考一个MM32L0xx_s_samples_V1.04,这个文件夹下的DMA方式,这里我自己简化了下,这个和STM32就是有配置上是有区别的,这个每个通道都得初始化一次。 之后我是弄了一个简单的上位机,使用QT编写的,后面配合本次代码,会上传到帖子下方。 大概是这个样子的,可以自己选择串口。波特率我是固定好了,下位机同样的板子,直接烧录我这个工程就能直接用。 下面就是本次实验的最大的坑了,就是串口向上面传输数据的时候,发现的问题,就是我数组是固定长度的,而且前两个数是固定死的,开始是使用官方的例程里的串口通信,想着省事,因为例子里是直接仿真口出数据的,所以我试了下,是有数据,问题就是这里,平常用printf打印可能看不出来,我用的数组发送,然后用上位机调试的时候发现数据老是对应不上,开头两个固定字节老是在变位置,然后我各种搜索,想,使用不同发送方式,发现其还是老是在变,都开始怀疑单片机是不是有问题,今晚突然就想到,我们串口是接官方的仿真器的,会不会这里出了问题,然后改代码,放到PA2,PA3口上,发现问题就解决了。查了好长时间的问题,原来是出在了仿真器上。好了到这里就结束了。 ADC测试了下,还是挺准的,有了这个基础后续还会给大家带来更多的控制体验。
上位机大家可以评论发邮箱,有点大了,不能上传了。
|