OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7075|回复: 11

关于 STM32 F1 串口空闲中断+DMA收发 的问题

[复制链接]

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2017-5-15
在线时间
41 小时
发表于 2018-10-3 23:50:22 | 显示全部楼层 |阅读模式
10金钱
目前,我在F1c8t6的板子上,可以实现 串口DMA发送数据,也可以配置使用 空闲中断 +DMA  实现不定长数据接收,但是将接收的数据 是通过 printf 发送到串口助手,进行调试查看的,
现在,我想知道能不能同时配置 DMA 收发,利用空闲中断 +DMA 接收不定长数据,然后通过 DMA 发送,将接收的数据直接通过 DMA 发送输出到 串口助手进行查看呢???
我试了一下,用printf 可以将接收到的不定长数据 发送到串口助手,但是配置加上 DMA发送 就不行,DMA接收中的结构体成员 buffsize为 接收到的数据长度,内存地址就是定义的接收数组名,然后串口助手接收不到任何字符,,是需要怎样配置呢??或者有没有这种的例程可以参考下?
望 论坛大佬不吝赐教,感激不尽!

最佳答案

查看完整内容[请看2#楼]

http://www.openedv.com/forum.php?mod=viewthread&tid=273874&extra= 你下错了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-10-3 23:50:23 | 显示全部楼层
回复

使用道具 举报

0

主题

109

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2018-9-2
在线时间
8 小时
发表于 2018-10-4 08:14:30 | 显示全部楼层
求大佬指点,谢谢
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-10-4 09:16:07 | 显示全部楼层
我发过可用的例子,你直接下载吧
回复

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2017-5-15
在线时间
41 小时
 楼主| 发表于 2018-10-4 14:23:30 | 显示全部楼层
275891381 发表于 2018-10-4 09:16
我发过可用的例子,你直接下载吧

你好,你的例程 我下载看过了, 在前台你也是 就用printf 将接收到的数据输出的呀,我想问  能不能将接收到的数据,利用DMA TX端 进行输出???
我的操作是:在前台检测到 接收的标志后,然后 关掉DMA接收通道,算出本次接收到的长度,然后 赋值给 DMA TX 结构体成员的 BuffSize,将接收缓存的地址 赋给 TX的内存地址,然后使用 串口DMA发送,将接受到的数据发出去。。。。但是用串口助手 没有接收到数据。。不知道是思路不对还是 哪的配置有问题??
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-10-4 16:06:49 | 显示全部楼层
MrL 发表于 2018-10-4 14:23
你好,你的例程 我下载看过了, 在前台你也是 就用printf 将接收到的数据输出的呀,我想问  能不能将接收 ...

你是不是看错了,主函数用的是USART1_printf 发送的呀,这个发送在开启dma宏的时候就是dma发送的,关闭宏USART1_printf和printf 一样
回复

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2017-5-15
在线时间
41 小时
 楼主| 发表于 2018-10-5 00:10:31 | 显示全部楼层
本帖最后由 MrL 于 2018-10-5 00:12 编辑

C:\Users\Administrator\Desktop\QQ截图20181005000700.png
QQ截图20181005000700.png
回复

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2017-5-15
在线时间
41 小时
 楼主| 发表于 2018-10-5 09:17:00 | 显示全部楼层
275891381 发表于 2018-10-4 16:06
你是不是看错了,主函数用的是USART1_printf 发送的呀,这个发送在开启dma宏的时候就是dma发送的,关闭宏 ...

你看下我的截图,,
回复

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2017-5-15
在线时间
41 小时
 楼主| 发表于 2018-10-5 10:14:18 | 显示全部楼层
275891381 发表于 2018-10-5 09:30
http://www.openedv.com/forum.php?mod=viewthread&tid=273874&extra=
你下错了

好  我看下这个,我以为都一样的。。。。。。。
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-10-5 16:03:54 | 显示全部楼层
MrL 发表于 2018-10-5 10:14
好  我看下这个,我以为都一样的。。。。。。。

是不是下错了,其实都一样,就是你最初下的那个代码臃肿后来简洁了下
回复

使用道具 举报

3

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2017-5-15
在线时间
41 小时
 楼主| 发表于 2018-10-6 00:47:29 | 显示全部楼层
本帖最后由 MrL 于 2018-10-6 00:48 编辑
275891381 发表于 2018-10-5 16:03
是不是下错了,其实都一样,就是你最初下的那个代码臃肿后来简洁了下

嗯  感谢你的参考例程,不过说实话 你那个有点乱,我自己封装了个 DMA发送和接受的库,配合 IDLE,比较简洁,很好用
回复

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
发表于 2018-11-15 16:29:35 | 显示全部楼层
MrL 发表于 2018-10-6 00:47
嗯  感谢你的参考例程,不过说实话 你那个有点乱,我自己封装了个 DMA发送和接受的库,配合 IDLE,比较 ...

能共享一下吗??谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 23:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表