打印
[其他ST产品]

stm32 DMA理论+实践

[复制链接]
楼主: 范德萨发额
手机看帖
扫描二维码
随时随地手机跟帖
61
范德萨发额|  楼主 | 2023-11-25 12:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
3 使能ADC_DMA的信号

使用特权

评论回复
62
范德萨发额|  楼主 | 2023-11-25 12:33 | 只看该作者
4 配置DMA

使用特权

评论回复
63
范德萨发额|  楼主 | 2023-11-25 12:33 | 只看该作者
1 更改计数器的值

2 关闭软件触发

3 填写存储器的地址,我们这里定义了一个数组,直接将数组名填上就行,然后强转为32位,

使用特权

评论回复
64
范德萨发额|  楼主 | 2023-11-25 12:33 | 只看该作者
4 改为接受半字 16位,因为AD转换的数据是12位存在了16位的寄存器里面,所以我们这里也只接受16位就够了

5 填写外设地址 这里ADC1为一个结构体指针,所以还是需要取地址的

6 改为半字(转换出来就是16的寄存器在存

7 关闭DMA的地址自增,我们只需要从转换的地方一直获取数据就行,不需要他自增地址

使用特权

评论回复
65
范德萨发额|  楼主 | 2023-11-25 12:33 | 只看该作者
5 启动部分

使用特权

评论回复
66
范德萨发额|  楼主 | 2023-11-25 12:33 | 只看该作者
1  首先DMA的触发,因为这里我们还是单次触发,所以还是需要停一下触发之后重置计数值,然后启动

2  启动

3 等待DMA传输完成,因为DMA传输完成肯定在转换完成之后,所以只用判断DMA是否转换完成即可

使用特权

评论回复
67
范德萨发额|  楼主 | 2023-11-25 12:34 | 只看该作者
6 主函数
int main(void)
{
        Usart_Config();
  MyAD_Init();
       
        printf("addr[0]=%d",addr[0]);
  while(1)
        {       
                  AD_GetValue();
                  printf("%d %d\r\n",addr[0],addr[1]);
                  Delay(5000000);
        }       
}

使用特权

评论回复
68
范德萨发额|  楼主 | 2023-11-25 12:34 | 只看该作者
这就是很正常的测试是否有值了,大家可以自己发挥

结果(扭动可变电阻正常变化,第二个引脚直接测的3.3 所以基本是满量程

使用特权

评论回复
69
范德萨发额|  楼主 | 2023-11-25 12:34 | 只看该作者
2) DMA连续转换+扫描模式
很简单,对比刚刚的单次采集更改如下

使用特权

评论回复
70
范德萨发额|  楼主 | 2023-11-25 12:34 | 只看该作者
1 更改ADC触发模式
将ADC的单次触发改为连续触发

使用特权

评论回复
71
范德萨发额|  楼主 | 2023-11-25 12:35 | 只看该作者
2 循环模式
这里开启循环模式,等于计数器减到0后,会自动帮你重载计数器

使用特权

评论回复
72
范德萨发额|  楼主 | 2023-11-25 12:35 | 只看该作者
3 加入触发
在DMA最后加上触发即可

4 删除函数
删除我们单次触发写的AD_GetValue()即可,这里只需要触发一次就可,不需要我们来判断是否转换完成,他会循环刷新,轮不到我们判断的。

使用特权

评论回复
73
范德萨发额|  楼主 | 2023-11-25 12:35 | 只看该作者
5 主函数
我们只需要做个初始化即可,这样转换值就已经在自动刷新和转运了。

使用特权

评论回复
74
范德萨发额|  楼主 | 2023-11-25 12:35 | 只看该作者
6 转换结果

使用特权

评论回复
75
Clyde011| | 2024-7-21 07:24 | 只看该作者

然后将其用作在PCB组装过程中放置在另一个板上的独立部件。

使用特权

评论回复
76
公羊子丹| | 2024-7-21 08:17 | 只看该作者

选择测试方法和测试参数是检测过程中的重要步骤

使用特权

评论回复
77
万图| | 2024-7-21 09:20 | 只看该作者

它产生的噪声是对地噪声

使用特权

评论回复
78
Uriah| | 2024-7-21 10:23 | 只看该作者

然后在专用站中检查每个半孔,

使用特权

评论回复
79
帛灿灿| | 2024-7-21 12:19 | 只看该作者

抑制各种高速信号产生的电磁波向外发射

使用特权

评论回复
80
周半梅| | 2024-7-21 15:18 | 只看该作者

对于信号回路的峰值电压防护电路不应动作,通常在信号回路中,防护电路的动作电压是信号回路的峰值电压的1.3~1.6倍。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则