发新帖我要提问
12
返回列表
打印
[STM32F1]

串口DMA接收的问题

[复制链接]
楼主: djz1992
手机看帖
扫描二维码
随时随地手机跟帖
21
djz1992|  楼主 | 2020-9-1 10:53 | 只看该作者 回帖奖励 |倒序浏览
天意无罪 发表于 2020-9-1 08:20
STM32做主还是从啊,如果做主,直接get或定时get数据,还不用开buffer,数据校验也好做。如果STM32是做从, ...

放弃了,DMA感觉用起来也不是很方便,情况复杂的时候太难做到稳定了。

使用特权

评论回复
22
天意无罪| | 2020-9-1 11:09 | 只看该作者
djz1992 发表于 2020-9-1 10:53
放弃了,DMA感觉用起来也不是很方便,情况复杂的时候太难做到稳定了。

嗯,是的,数据量小,应用简单的情况下可以使用。你跑以太网,还是正常流程获取数据吧。

使用特权

评论回复
23
djz1992|  楼主 | 2020-9-1 11:21 | 只看该作者
天意无罪 发表于 2020-9-1 11:09
嗯,是的,数据量小,应用简单的情况下可以使用。你跑以太网,还是正常流程获取数据吧。 ...

我的数据主要是三部分。第一是AT指令;第二进入透传后的MQTT数据;第三是OTA时候的http格式数据。
这三部分数据情况都不一样,而且长度都不一定。
AT指令的回复有快有慢,有分段。
MQTT的数据不是一发一收,服务器说不定就来数据。
OTA的数据量大,http服务器那边没有分包。

使用特权

评论回复
24
单片小菜| | 2020-9-1 11:48 | 只看该作者
这个需要使用一个备份缓冲区才可以,不然的话,会出现问题的。

使用特权

评论回复
25
天意无罪| | 2020-9-1 12:39 | 只看该作者
djz1992 发表于 2020-9-1 11:21
我的数据主要是三部分。第一是AT指令;第二进入透传后的MQTT数据;第三是OTA时候的http格式数据。
这三部 ...

看你这描述,你应该是使用的串口WIFI模块吧。
我的处理方式:就用串口接收非空中断。

AT阶段:串口发送命名,串口中断接收数据填入buffer,并解析命令。

MQTT阶段:同AT阶段。

OTA阶段:我没玩过,但原理和方式类似于STM32串口升级固件。我不知道你的软件框架是怎样写的,所以也不好过多评论。

另外网上有很多STM32 OTA例子,你可以参考一下。

使用特权

评论回复
26
djz1992|  楼主 | 2020-9-2 08:07 | 只看该作者
天意无罪 发表于 2020-9-1 12:39
看你这描述,你应该是使用的串口WIFI模块吧。
我的处理方式:就用串口接收非空中断。

stm32用http格式去get一个file。http服务器bin文件,是一下子全发过来了。没有分段,所有很烦

使用特权

评论回复
27
天意无罪| | 2020-9-2 08:39 | 只看该作者
djz1992 发表于 2020-9-2 08:07
stm32用http格式去get一个file。http服务器bin文件,是一下子全发过来了。没有分段,所有很烦 ...

一下子全发过来,从数据完整性、准确性、误码率、以及可操作性来讲,也不应该这样操作啊。更何况你是嵌入式系统下。

使用特权

评论回复
28
djz1992|  楼主 | 2020-9-2 10:18 | 只看该作者
天意无罪 发表于 2020-9-2 08:39
一下子全发过来,从数据完整性、准确性、误码率、以及可操作性来讲,也不应该这样操作啊。更何况你是嵌入 ...

没办法,升级前人的产品,我就改一个嵌入式代码,其他东西都已经做好了,改起来相当多的东西掣肘

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则