没有合适的资源?快使用搜索试试~ 我知道了~
考研失利不用准备复试了,有了空闲时间做了个示波器,带宽80Khz,输入幅度0-3.3V,带有触发功能,接近实时的波形显示和FFT计算,不过存储深度太小了只有1024个点。最近要准备工作的面试了之后有时间再完善。简单总结一下设计思路,一些疑问和今后要完善的地方,采用的基本上都是固件库开发怎么配置网上都有就不细说了。文件在最后,单片机型号STM32F103RCT6 (ps:大四辣鸡一个,半瓶水晃荡着做的,有很多知识和理解受制于自己的视野,也还有许多地方设计的不合理欢迎大家交流,家里没有杜邦线剪了一截导线大家将就看8(狗头)) 一.STM32内部DA作为信号源 二.STM23内部AD不间断采样 总
资源推荐
资源详情
资源评论
STM32简易示波器开发总结简易示波器开发总结
考研失利不用准备复试了,有了空闲时间做了个示波器,带宽80Khz,输入幅度0-3.3V,带有触发功能,接近实时的波形显示
和FFT计算,不过存储深度太小了只有1024个点。最近要准备工作的面试了之后有时间再完善。简单总结一下设计思路,一
些疑问和今后要完善的地方,采用的基本上都是固件库开发怎么配置网上都有就不细说了。文件在最后,单片机型号
STM32F103RCT6
(ps:大四辣鸡一个,半瓶水晃荡着做的,有很多知识和理解受制于自己的视野,也还有许多地方设计的不合理欢迎大家交
流,家里没有杜邦线剪了一截导线大家将就看8(狗头))
一.STM32内部DA作为信号源
二.STM23内部AD不间断采样
总线72MHz,6分频,55.5个周期的采样时间,大概有160KHz的采样频率(不知道现在数字示波器还是不是和模拟的一样用
扫描信号,没有仔细去找相关资料,但是感觉完全可以用足够的采样率和存储深度恢复波形)
三.DMA总线传输(单次、不循环)
总共传输1024个数据,可以设置更多点,不过本次用的是32内部的SRAM,如果想做更多点的使用外挂RAM不知道速度够不
够
四.处理数据
1.触发:设置了俩种,(1)达到触发电平触发、(2)达到触发电平且为上升沿触发。T_point为触发位
置,ADC_ConvertedValue为DMA传输的数据,T_value触发电平。
电平触发
int Trigger()
{
for(T_point=0 ; T_point<NP/5 ; T_point++)
{
if((ADC_ConvertedValue[T_point]T_value+1))
{
break;
}
}
return T_point;
}
上升沿触发
int Trigger()
{
for(T_point=0 ; T_point<NP/5 ; T_point++)
{
if((ADC_ConvertedValue[T_point-1]T_value))
{
break;
}
}
return T_point;
}
2.时域波形显示、擦除
计算一下像素点在显示区域的高度位置就行,擦除时不要清屏,直接用本次的数据设置成和背景色相同的颜色可以快很多。下
一步打算可以做到更改x轴刻度,初步设想是更改显示AD采样数据的间隔就行。还有暂停之后可以左右移动波形,同样更改
AD采样数据的位置即可。
3.FFT
采用官方的库,注意修改一下头文件。显示擦除和时域波形同理。
4.数据测量
最大值最小值平均值很好做,频率测量采用的是FFT的数据。
资源评论
- 一只鲸鱼6552022-04-26无语,,,
付出余切
- 粉丝: 200
- 资源: 912
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功