硬汉嵌入式论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: eric2013
收起左侧

基于V6的CMSIS-Driver串口应用,支持8串口DMA不定长收发,比CubeMX还要省事

  [复制链接]

0

主题

10

回帖

10

积分

新手上路

积分
10
发表于 2022-7-25 09:08:55 | 显示全部楼层
F4没用过,但是L4 HAL库函数存在针对IDLE+DMA+UART的处理。目前有IDLE和RTOEN两种方式的DMA不定长接收。LPUART不支持RTOEN,只能使用IDLE。其他UART可以看数据手册是否支持RTOEN
IDLE的库函数是HAL_UARTEx_ReceiveToIdle_DMA
RTOEN的库函数是HAL_UART_EnableReceiverTimeout,当然还要配合其他几个一起使用。大家可以看下库函数介绍。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2022-7-26 11:49:44 | 显示全部楼层
顺风喊破锣 发表于 2022-7-25 09:08
F4没用过,但是L4 HAL库函数存在针对IDLE+DMA+UART的处理。目前有IDLE和RTOEN两种方式的DMA不定长接收。LPU ...

F4,h7等没有这个函数
回复

使用道具 举报

0

主题

59

回帖

59

积分

初级会员

积分
59
发表于 2022-7-29 19:20:43 | 显示全部楼层
我是使用cubemx生成初始化文件,然后加入cmsis driver,用ac6编译,没有错误,可以正常使用
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2023-2-15 12:11:26 | 显示全部楼层
请教一下,按视频配置编译下载,第一次接收正常,但是后面就接收不到了。rst重启以后也只能接收一次,后面还是接收不到,是什么问题造成的。谢谢。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2023-2-15 12:14:34 | 显示全部楼层
请教一下,第一次接收正常,但是后面就接收不到了,重启以后也是第一次接收正常,但是后面就接收不到了,是什么问题造成的?谢谢。
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2023-4-14 15:55:26 | 显示全部楼层
硬汉哥上面的链接下载不了,这是为啥
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-4-14 16:08:21 | 显示全部楼层
appleddd 发表于 2023-4-14 15:55
硬汉哥上面的链接下载不了,这是为啥

测试了,没问题,获取下载地址后,使用迅雷下载试试
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2023-7-1 18:34:23 | 显示全部楼层
下载.png

大家好,哪位大神指导一下,这个支持包怎么安装HAK库呀
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-7-2 09:45:58 | 显示全部楼层
Hacker 发表于 2023-7-1 18:34
大家好,哪位大神指导一下,这个支持包怎么安装HAK库呀

MDK安装STM32F4的软件包即可。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-7-17 12:16:06 | 显示全部楼层
如果测试不正常,使用新版MDK5.3X及其以上版本,使用后来新做的例子,此贴有附百度云下载。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=114241
回复

使用道具 举报

2

主题

12

回帖

18

积分

新手上路

积分
18
发表于 2023-8-4 22:10:20 | 显示全部楼层
typedef struct
{
    uint8_t           header1;
    uint8_t           header2;
    uint8_t           datalen;
    uint8_t           msg_id;
    uint8_t           *payload;
    uint8_t           check_sum;
} DATA_PACK;
请教一下老大,最近在写数传模块的接收,定了个简单协议 payload内容大小不定,像这种当接收频率不是很快时我可以采取hal库的DMA空闲中断接收一包完整数据再处理,但是瞬间接收的包数很多时,有什么方法或者案例采用队列的方式处理吗,因为不像单字节指令那样可以用FIFO一个一个字节的取出做处理,而是需要取出一包一包的不定长指令包做处理,求推荐方法或者案例
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-8-5 08:23:20 | 显示全部楼层
QWFaichixuegao 发表于 2023-8-4 22:10
typedef struct
{
    uint8_t           header1;

看看此贴能给你点灵感不,

实战技能分享,各种数据类型的SPI, UART, I2C,FDCAN等方式的通信传输以及存储到EEPROM, Flash等设备的简易实现方法
https://www.armbbs.cn/forum.php? ... 9659&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

6

主题

31

回帖

49

积分

初级会员

积分
49
发表于 2023-8-31 11:15:05 | 显示全部楼层
本帖最后由 厉飞雨 于 2023-8-31 14:28 编辑


原工程(freertos+LVGL)不是通过RTE构建的,可以直接添加RTE_Device.h使用串口DMA吗?


屏幕截图 2023-08-31 110930.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-8-31 15:46:17 | 显示全部楼层
厉飞雨 发表于 2023-8-31 11:15
原工程(freertos+LVGL)不是通过RTE构建的,可以直接添加RTE_Device.h使用串口DMA吗?

可以的。
回复

使用道具 举报

18

主题

43

回帖

97

积分

初级会员

积分
97
发表于 2023-9-27 10:32:39 | 显示全部楼层
大佬,我有个疑问,8串口如果同时使用的话,是不是有DMA Stream复用的问题,需要分时复用?
因为,我看手册,有几个DMA Stream是两个串口DMA收和发共用的。是不是dma发送完了,应该要将共用的设为DMA接收。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2023-9-28 07:07:35 | 显示全部楼层
Zachary唷 发表于 2023-9-27 10:32
大佬,我有个疑问,8串口如果同时使用的话,是不是有DMA Stream复用的问题,需要分时复用?
因为,我看手 ...

同一个DMA要,如果多个stream就绪,要仲裁选择Stream那个优先执行(DMA的优先级配置就是干这个的),另外不同的外设要配置到不同的Stream下。


F1系列,F4系列和H7系列的DMA框图对比,一目了然
https://www.armbbs.cn/forum.php?mod=viewthread&tid=86257

回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2024-1-3 17:26:07 | 显示全部楼层
zoomkg 发表于 2023-2-15 12:11
请教一下,按视频配置编译下载,第一次接收正常,但是后面就接收不到了。rst重启以后也只能接收一次,后面 ...

我也遇到了,不知道为啥
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
 楼主| 发表于 2024-1-4 09:00:56 | 显示全部楼层
Embedded_Proter 发表于 2024-1-3 17:26
我也遇到了,不知道为啥

CMSIS的软件包不要使用5.8.0版本
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 02:42 , Processed in 0.229734 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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