本帖最后由 悠悠飞雪 于 2013-11-9 00:11 编辑
11-06
前两天偷懒了,一直没进度,表示很惭愧,今天完成了野火教程ADC的实验,但怎么也提不起劲,怎么说呢,虽然程序能运行,但怎么觉得这不是自己的东西,库这东西总不能一直指望着有人出教程吧,
论坛上总是有大神说要学会看官方文档,文档一般都是英文的,这还好说,勉勉强强能看懂什么意思,但总是找不到自己想要的,比如说库函数手册,虽然有例子和函数的用途等,但真正具体的用法和注意还是没有,这让人很纠结,所以呢,有时候我就觉得还没有直接在源码中找方便呢。另一方面,总是跟着教程的思想走,根本没有什么新的思路,新的想法,很不爽,很纠结。
还是回过头来说说今天的ADC吧,用库的话基本方法,和以前的大同小异,无非是ADC对应的GPIO配置,ADC的模式配置,只要按需要进行配置就行,还有DMA的配置,都有结构体定义进行初始化,最后开启ADC,DMA通道,校准ADC寄存器就行的,输出无非就是printf,数值可以声明个外部变量用于DMA将ADC的采样数据存放起来,在main中调用。只用了一个ADC,功能很简单。
至于错误,除了一些拼写错误不说,我还犯了很二很二的一个错误,USART实验时记着再用到printf的时候需要勾选工程选项里的USE MicroLIB,这次居然忘了,整了好长时间,具体表现是,不管怎么办,就算是在printf之前点亮LED都点亮不了,并且生成的文件巨大。
还有个不太明白的问题,再用printf传输的时候整个程序的第一个字符,会丢失。不知道是库的问题,还是串口助手的问题。
11-08
内部温度传感器也是ADC实验,用了十几分钟,改造测试了下,只用在上个程序的基础上稍微稍微改造了一下就可以了,主要是ADC的外部GPIO不需要了,修改下ADC通道为16,在ADC的初始化中加了句ADC_TempSensorVrefintCmd(ENABLE);用来开启内部温度传感器,其实就是
STM32参考手册中说的第三步,设置 ADC 控制寄存器 2(ADC_CR2)的 TSVREFE 位,以唤醒关电模式下的温感器,可以去到ADC_TempSensorVrefintCmd的定义中查看。
第三个程序中有加入了中断,输入字符型的1~9可以产生对应行数的信息,没什么意思。
1