注意
>>网上有很多DMA的操作的教程,但是随着后面的学习与,记忆力衰退,我觉得还是参考借鉴用户手册写程序效果对我好点
>>该博客带领大家用官方用户手册操作DMA模块
准备工作
>>UM1718STM32CUBEMX官方中文用户手册
>>STM32CUBEIDE
步骤 | 结果截图与步骤讲解 |
---|
1:创建工程 | ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/15f5a5de3843616ca98ba94f4ed5ead9.png) |
2:选择外部晶振,配置RCC时钟 | ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6980968c20c21f99cb2b6ea8c325c2d8.png) |
3:为了进行上位机调试,我们需要用到uart | ,对异步uart进行配置![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d63f7e7843e3a32ee0c19fe766608f66.png) |
4:对DMA进行配置 | 由于我们不知道DMA怎么配置,我们打开UM1718手册,搜索DMA,可以查找到![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/65f4d6e8975f688d59d88e513fa5716e.png) |
5:配置内存到内存模式 | 1)内存to内存模式不需要使用外设,所以我们直接在DMA选项里面可以直接勾选,软件会自动为我们分配一条流通道(内存到内存模式只能使用FIFO模式) ==> 2)将目的地址与源地址的自动增加功能都打开,数据宽度可以选择Bite,half word,word三个种 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c09e1a0bceb557b5095fbd29f2bd091c.png) |
6:在函数((内存种))种创建src数组与dst数组实现DMA传输, | ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dedcca9b8eccd5c9a20176fa0318c223.png) |
7:调试验证 | 内存与内存之间的DMA传输![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f26e7a7e5684b373575946b52d19b7c9.png) |
实验:外设到内存的DMA传输与内存到外设的DMA传输 | 步骤讲解与结果截图 |
---|
1:我们这里的外设选取串口Usart | 1)在uart的DMA中,将串口的发送线与接受线都使能DMA,来测试外设与内存和内存与外设的DMA通信 2)由于外设数据寄存器的地址是不变的,所以外设的地址自动增加功能我们关掉,由于dma的传输转瞬即逝,所以我们模式选择循环模式,保持DMA通道一直打开 3)使能串口外设的DMA后,我们能在DMA中看到我们使能的DMA通道![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7a5ee0ad83c93cd342fb70193f81127c.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/719f83a7f60bfe089cbfe327b29eb0de.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/01feebddbd611976017a6476077c38f0.png) |
2:测试函数 | 1)我们在内存中创建了2个数组空间,一个用来内存数据的DMA传输到串口外设,一个用来接收外设通过DMA发送来的数据 2)因为两个DMA的模式是循环模式,并且DMA是脱离CPU进行工作的,所以两个DMA会一直处于工作状态 3)由于我们的传输大小选的是字节大小,所以我们10次才能发送完,所以函数里面填10!![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a1f943cb0dfa9a6a42a6942b2a65030a.png) |
3:结果验证 | 内存中的数据通过循环模式源源不断的发送到串口,串口每隔2ms通过DMA将数据传到内存![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e854602d04fdf0c05eb6e53ed04a31ff.png) |
>>看完有收获的朋友,点个赞呗┭┮﹏┭┮
>>时间::2020-6-15
欢迎关注我的微信公众号(里面同步更新了CSDN的博客)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5999108ceff9be5a3fbd851a112caf33.jpeg#pic_center)