你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32C092-NUCLEO 波形采集 简易串口示波器

[复制链接]
短笛君 发布时间:2025-5-3 23:44

要实现波形采集功能 首先我们需要使用TIM+DMA+ADC来这三个功能来完成ADC的硬件定时采集功能 采集速率为100Khz。这里仅演示功能 采集信号频率为方波和正弦波。

根据采样定理:

*抽样信号的最小频率p ( t ) p(t)p(t)的频率要大于x ( t ) x(t)x(t)的最大频率的2倍

所以我们理论上的波形采集频率上限为50khz 但是实际应用过程中 为了较好的还原波形 一般只采集到10khz左右 即一个周期内采集10-8个点去还原波形。受限于C0自身的性能 也不能去做一些复杂的插值算法,所以这里仅使用低频信号进行测试

首先是定时器配置 我们需要给ADC一个触发源 来触发ADC的采集工作

819cbc5a30a1359b41617a0386be0056.png

48Mhz主频 PSC设置为47

ARR设置为9

得出采样频率为100Khz

同时还要勾选Tigger OUT 更新事件来通知ADC的采样时刻

ADC设置要开启DMA传输模式

fce24173a7a85df5c7483c7d25efa462.png

触发源选择Timer1 的Trigger2 事件

e05d12988b9ff89d8ec8621f1fd4853e.png

其他ADC设置保持默认即可

另外还可以开启一个tim3来生成PWM信号用来测试

![559971745454c9e01d7546c6637df2e2.png](

559971745454c9e01d7546c6637df2e2.png

这里生成了1KIhz的PWM波形

以上设置基本设置完毕 设置PC9为输出用来观察状态

 HAL_TIM_Base_Start(&htim1);
 HAL_ADC_Start_DMA(&hadc1, &g_databuffer,sizeof(g_databuffer));
 HAL_TIM_Base_Start(&htim3);
 HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
 __HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1,50);
 HAL_TIM_Base_Start_IT(&htim17);

由于不涉及一些复杂的变换 只需要将采集到的数据通过串口输出到上位机中 所以这里只设置了一个

g_databuffer用来接收ADC的数据并传输 具体大小可以根据实际效果自行调整

打开定时器和DMA后就可以开始采集了

这里我定义了一个回调函数用来在DMA传输完成中断中调用,将采集完成的数据发回

void send_callback(void)
{

        GPIOC->BSRR = GPIO_BSRR_BS9;
        transfr_data.data = g_databuffer;
        HAL_UART_Transmit(&huart2, (uint8_t *)&transfr_data, sizeof(transfr_data),1);
        GPIOC->BSRR = GPIO_BSRR_BR9;

}

通过寄存器操作可以在示波器上看到实际的采样频率

实现效果:

4afd12b4a2b6a5040309ad748b8f66c3.png

2df9867da48f315ba81af947abeaa213.png

后面的效果是乘以0.0008056640625的转换系数来将电压缩放,实际测试即使进行乘法操作 对性能也有着严重的影响(他只是个48Mhz的M0放过他)

d58c6a9b78d738698374138e6c341e6d.png

b17fd4c64e2be545b3cda915b33ac0d2.png

另外 可以用以上思路将代码实现在OLED屏幕上 使用打点函数 400Khz速度下的IIC效果预计会比串口上位机效果好很多,可以先挖个坑 以后更新下

559971745454c9e01d7546c6637df2e2.png
收藏 评论0 发布时间:2025-5-3 23:44

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版