OpenEdv-开源电子网

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

STM32 C8 串口DMA接收求助

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2017-11-23
在线时间
6 小时
发表于 2017-12-21 16:26:48 | 显示全部楼层 |阅读模式
1金钱
现在在做一个类似飞控的项目,采集GPS定位信息,发送给后台服务器。因为数据量比较大,采用串口DMA的方式实现。
初次接触STM32,对标准库不熟悉,就用了HAL库。虽然图形化建立工程比较容易,但是后面的coding问题就出来了,现在卡在实现DMA接收上。
发送时调用HAL_UART_Transmit_DMA()函数,网上例程也比较多,参考着也就实现了。但是接收就搞不定。还是对HAL库架构不熟悉所致。因此想问几个问题,盼大家回复。
问题:
1)按照CubeMX模板构建完工程后,串口的中断标志位是不是都已经置好了?串口等是不是都已经使能?在中断处理函数里还需要清标志位,置位吗?这是关于HAL库的特点来问的。
2)用标准库时,是一步步的对串口进行配置,比如端口初始化、启用中断、使能端口等等,包括串口和内存地址。但是HAL库里貌似取消了在初始化时设置串口和内存地址,只能通过内部定义的函数START_DMA()或者START_DMA_IT()。
这里的问题是,使用HAL库,实现大量数据接收,把接收的数据拷贝到另外一个缓冲区进行处理,实现的思路大概是什么样子?
3)项目紧急,个人能力有限,希望得到一些支持,不知有没有朋友有意支持。请加微信ahcong428联系。
谢谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2017-12-21 16:29:57 | 显示全部楼层
1. DMA接收要自己在生成的代码上小改改,特别是DMA通道这些是要自己多关注的。
2. 防止丢数据,DMA 接收一般是工作在循环模式,然后定期把buf中的数据拷走。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 05:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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