本帖最后由 linccfzu 于 2020-7-15 00:08 编辑
大家晚上好,这一章主要介绍一下超声波波形数据的采集,并且上传到Matlab进行信号处理。
由于我们现在用的是40k的超声波频率,用stm32 ADC采样完全够了,所以这里还没涉及到FPGA。
先看下我搭的“简易”硬件,一个超声波模块,加一个单片机最小系统:
首先把超声波模块的单片机拿掉,然后把激励端接到定时器1的输出通道,把回波信号接到ADC采集通道。
换了几个电阻,修改了一下中间电压以及放大倍数,
原理图我大概看明白了,对于交流信号,电容相当于短路,所以你直接把几个电容拿掉就好分析了。
接下去就是stm32的软件设计,直接在stm32Cube中,根据需要生成 定时器、ADC、USB、串口等各个模块的驱动,非常方便:
然后重点讲一下激励的发送和波形的采集
这里就不画时序图了,具体可以看代码 , 简单说一下,stm32f1的功能比较少,我没怎么优化 ,所以我用了4个定时器,:
1、定时器TIM2,设置成主循环定时器,周期50ms , 主定时器模式,外部触发通道是 更新触发。
2、定时器TIM1, 用来产生激励信号 , 可以设置任意两个通道,设置方向相反, 设置 为从定时器模式,单脉冲模式。
由于是高级定时器,所以可以用来设置激励个数 , 从定时器模式 , 被定时器TIM2触发。
3、定时器TIM3, 这个定时器作用是