【开源】自制简易示波器V1.0

所需材料:

芯片:stm32f103c8t6

oled显示屏

效果展示:

100hz占空比50%的pwm波

100hz占空比95%的pwm波

教程正文:

1.ADC+DMA方式采集

ADC配置

 DMA配置

uint32_t adc[1];//定义为全局变量

HAL_ADC_Start_DMA(&hadc1,adc,1);//开启ADC  由于是normal模式所以在主函数里需要重复调用来采集

 2.定时器中断配置及PWM波发生

//初始化部分
HAL_TIM_Base_Start_IT(&htim1);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);

//主循环
__HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_1,5000);

3.关键部分代码

void shibo()
{
	OLED_refresh_gram();//刷新
HAL_ADC_Start_DMA(&hadc1,adc,1);
	Bias=adc[0]/100+10;
//消除误差
	if(Bias>max)
		max=Bias;
	  mine=Bias;

	if(max-Bias<5)
		Bias=max;

	if(Bias-mine<5)
		Bias=mine;

	OLED_draw_line(j,Bias,j+1,Bias,PEN_WRITE);
	OLED_draw_point(j,Bias,PEN_WRITE);
	
	c=fabs(Last_Bias-Bias);
	if((Last_Bias-Bias)>10||(Bias-Last_Bias)>10)		
		OLED_draw_line(j,Bias,j,Last_Bias,PEN_WRITE);
	j=j+2;

	Last_Bias=Bias;
if(j>127)
		{	OLED_operate_gram(PEN_CLEAR);//清屏
			OLED_refresh_gram();
			j=1;
		}
}
	
 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)//在中断回调里调用
{



		
	shibo();


}

完整代码:ole · 小恐龙/stm - 码云 - 开源中国 (gitee.com) 

                  ole · 小恐龙/stm - 码云 - 开源中国 (gitee.com)

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于是德科技: 是德科技(NYSE:KEYS)-原安捷伦电子测量事业部,是全球电子测量技术和市场的领导者,致力于推动无线通信、模块化和软件解决方案的持续创新,专注于为客户提供卓越的测量体验。是德科技提供的电子测量仪器、系统、软件及服务广泛应用于电子设备的设计、研发、制造、安装、部署和运营。 前言: 最近一直在玩STM32和LCD屏,从字符到TFT,从1.8到3.5寸,挨个都摸了个摸,公司产品出来了,可一直想用这些东东来作点什么。示波器上班用公司的,虽说也是便携的,但也不好带回家去用呵,看看市场上动辙千元以上,唉,还是自己动手来DIY方便自己,也造福网友。 性能目标: 电源使用二节2500mA锂电,正常工作5小时以上。 数字示波器参数: 主控: STM32F103ZET6 液晶屏: 3.2"TFT320×240 65K彩色LCD显示屏 STM32 FSMC总线驱动 AD: ADS831 IDT7205 最高实时取样率60Msps 8Bits, 取样缓冲器深度:5K 垂直灵敏度:5V,1V,500mV,200mV,100mV,50mV,20mV,10mV; 基准电压使用STM32 DA输出,实现按键调节波形基准。并有位置指示 水平时基范围:2S, 1S,500mS,200mS,100mS,50mS,20mS,10mS,5mS,2mS,1mS,500uS,200uS,100uS,50uS,20uS,10uS,5uS,2uS,1uS,500nS, 水平位置可调并有指示 输入阻抗:≥1MΩ 最高输入电压:50Vpp 耦合方式:AC/DC 实现自动、常规、单次触发方式 ,上升或下降边沿触发 实现计算测量输入信号的频率、周期、占空比、交流峰-峰值、平均值 触发电平高低位置可调,并电压指示 触发时基位置可调,并带指示 实现RUN/STOP功能 使用16个按键,真正作到单键操作以免去组合按键麻烦。 如截图: 功能预留: 波形发生器:使用STM32另一路DA+NE5532实现正弦,三角波,方波输出。 SD卡波形存储输出。 系统串口,可连接电脑输出数据,也可实现远程ISP升级:通过从网上下载升级包文件,方便地升级示波器软件。 注意: 具体看原理图,实现机理:在系统复位后,SYSCLK的第4个上升沿,BOOT管脚的值将被锁存。在开机时使用按键将BOOT0位拉低即可实现STM公司原ISP程序升级,而不再用提前预装IAP程序造成使用麻烦 数字示波器实物展示: 原文出处:https://www.amobbs.com/thread-3706638-1-1.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值