IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> # 关于STM32F4 使用DMA数据流-冲突下-复用输出PWM操作问题的记录以及解决办法 -> 正文阅读

[嵌入式]# 关于STM32F4 使用DMA数据流-冲突下-复用输出PWM操作问题的记录以及解决办法

# 关于STM32F4 使用DMA数据流-冲突下-复用输出PWM操作问题的记录以及解决办法

1 前言

——之前,一直在测试并使用DMA+PWA点ws2812灯带,当时提供的是F4的一款芯片,提供引脚是PA0,PA1,PA2,PA3,PA6,PA7这6个引脚,并且指定定时器tim2和tim3。
——在调试过程中,发现他们DMA上有冲突,在"STM32F4中文参考手册",如下图,可以看到TIM2_ch1和TIM3_ch2都在数据5上,他们是冲突的。
——后来解决了,采用时间片轮转方式,虽然成功了,但是不是很推荐这种方式,本次也是做个记录,这个问题可以完结了。
DMA映射

2 问题

——当时也专门花钱发了一个问题帖子,想要解决,具体问题如下。
https://ask.csdn.net/questions/7617833

3 测试环境

软件环境:STM32cubeIDE 1.8.0
硬件芯片:STM32F407ZGT6

4 代码配置

  1. 时钟以及调试口配置。
    基础配置,在这个软件上这样配置就行
    在这里插入图片描述
    在这里插入图片描述

  2. 定时器TIM2,TIM3配置端口以及细节
    (1)这块会多说些,我们需要先看看PA0,PA1,PA2,PA3,PA6,PA7这6个引脚上都有哪些可用tim2和tim3DMA通道。本身测试只使用了 PA0,PA2,PA6和PA7。
    注意:
    1——为什么不使用PA1呢,因为在使用正点原子开发板,这个引脚有外部器件干扰,用不了。
    2——为什么不使用PA3呢,记得是因为tim2ch2和tim2ch4公用一个端口上,所以自然而然少一个可以上上边DMA1映射请求图。
    (2)在软件STM32cubeIDE上查看引脚可用。

PA0引脚如下图:
在这里插入图片描述

PA2引脚如下图:
在这里插入图片描述

PA6引脚如下图:
在这里插入图片描述

PA7引脚如下图:
在这里插入图片描述
(3)具体配置细节
配置定时器2的ch1和ch3,如下图,在这里插入图片描述
配置时钟参数
在这里插入图片描述
配置定时器3的ch1和ch2,如下图,可用看到定时TIM3_CH2标为红色,说明软件本身不让你选

在这里插入图片描述
先选择TIM3_CH4/UP并且配置,如下图。
在这里插入图片描述
另外别忘记配置定期器。
在这里插入图片描述

  1. 系统时钟配置
    F4配置系统时钟为168M
    在这里插入图片描述
    以上配置,如果有什么觉得不详细地方,下载代码来对比,链接请看下边链接。

5 使用的样例代码链接

https://download.csdn.net/download/qq_22146161/82348158

6 代码片段说明

在代码段需要注意一些细节。
(1)在main.c中要,要注意初始化时,注释掉定时3初始化,时间片轮转的思想,在定时器2输出后,先失能tim2,再初始化tim3,输出tim3的,等输出完tim3,先失能tim3,再初始化tim2,如此反复。
在这里插入图片描述
(2)tim3_ch4配置代码手动配置到tim3_ch2:我们之前配置的时候,无法再软件内选择,只能自己手动改下代码,需要修改定时器3初始化,和DMA配置函数,在stm32f4xx_hal.msp.c内。
在这里插入图片描述

(3)另外在中断函数配置相关代码,stm32f4xx_it.c
在这里插入图片描述
具体,有需要请看代码片段吧。这里也就不一一列出了。

7 后期验证

一个东西是否有些,就要用时间硬件抓下,使用逻辑分析仪抓出波形如下图。
在这里插入图片描述
具体数据细节
在这里插入图片描述
可以看出4个通道都可以输出波形。

8 总结

这件事也就完结了,也花了不少精力调试与测试。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:45:41  更:2022-02-28 15:46:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:51:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码