自己是一个近学习STM32不到3个月的菜鸟一个而已,C语言基础也学的很不扎实,做作品所涉及的基本模块,例如ADC采集、DMA传输、FLASH掉电保护、DAC输出、通用定时器和高级控制定时器等的运用------自己一无所知,仅仅在学习单片机的时候看了些AD和DA的相关资料和一些简单的程序,仅此而已。
硬件基础:开发板为无线电协会所使用的创新开发板,编程环境为KELL4,下载工具为J-LINK或利用串口线下载。
不过到寒假结束时,单通道以做的很稳定,双通道程序当时写了,但最后没在硬件上验证,下面把自己这段时间内学习的各模块和做这个作品的思路及设计方案等分享给大家,以便大家借助这个作品来加强对STM32的几个常用模块的学习与运用!
程序调试过程中总是问题层出不穷!当然这也是很好的学习平台!
问题1:
//2月13日 程序出现的问题: 前提条件:信号发生器的幅值为2,频率为1KHz,直流偏置为1-2v. ADC_channel_11(连接DS18B20)
ADC采集的数据不是太规则,所显示的波形总是在上升沿处是突然出现一个最低值(零),但是偏置加到1.5-2v时,输出波形恢复正常。
此外,当换到ADC_Channel_12时偏置降到1v时,现象正常。
究其原因:应该是开发板上的ADC_channel_11(PC1)连接DS18B20上,ADC采集时和18B20进行了通信或其他原因。
解决办法:ADC采集通道换到ADC_Channel_12。
问题2:
ADC采集时,所加信号的偏置电压还需要比正常的高一些,否则会出现有一段时间显示的数据一直为零。也就是ADC采集0-2V的信号时靠近0的部分一直显示的是0,但是后来不知道为什么后来有恢复正常了?(正常时应该能够对0-2V之间的信号完美的采集一个周期) |