使用STM32的串口进行大量数据传输

发布者:黄金大花猫最新更新时间:2018-09-01 来源: eefocus关键字:STM32  串口  数据传输 手机看文章 扫描二维码
随时随地手机看文章

近的一个项目需要用单片机和上位机进行大量数据的传输,每次传输的内容为一个1000*7的矩阵,矩阵中的每个元素都是一个4位有效数字,通过字符的形式保存,(如:1.000占5个字节)简单计算一下,1000*7*5=35000Byte,也就是30几K,而单片机型号为:STM32F103ZET6, SRAM有64K 。如果直接申请一个数组来保存,占用空间太大,但是又不适合用C标准库中的malloc 进行动态内存分配,网上有人自己写的实现动态内存管理的代码,可以移植,这是第一个问题。

第二个问题是,当我在串口中断中只做一件事:将接收的数据打印到终端,不再做其他事时,数据接收到的是完整的,一开始为了节省内存,申请了一个比较小的数组,循环使用。每当接收到1024个字节就写到flash中,但是这种方式会丢包,因为在向flash中写数据的过程中,PC 端仍然在发,但是STM32却没有接收,因此造成部分数据丢失,因为时间有限,后来只好申请了一个比较大的数组将数据一次性接收,并在数据包的首尾设置标志。这样才避免了丢包的问题,但是数据太大,太占空间,现在将这个问题留在这里,等解决了再补充。


关键字:STM32  串口  数据传输 引用地址:使用STM32的串口进行大量数据传输

上一篇:stm32串口发送数据最高位错误问题
下一篇:STM32小白入门(第六天)-------串口通信

推荐阅读最新更新时间:2024-03-16 16:12

stm32专题二十七:MPU6050介绍
MPU6050介绍 (1)飞行姿态 (2)三种常用的坐标系 抽象来说,姿态是“载体坐标系”与“地理坐标系”之间的转换关系。 地球坐标系:就是以地球球心的三维坐标系; 地理坐标系:就是日常生活中的东南西北; 载体坐标系:基于载体本身姿态的坐标系; 三种坐标系的描述: 关于欧拉角:这些角度也称欧拉角,是用于描述姿态的非常直观的角度。 关于载体坐标系和地理坐标系的转换: (3)传感器介绍: MEMS:微机电系统(MEMS, Micro-Electro-Mechanical System),也叫做微电子机械系统、微系统、微机械等,指尺寸在几毫米乃至更小的高科技装置。 (4)陀螺仪 使用陀
[单片机]
<font color='red'>stm32</font>专题二十七:MPU6050介绍
STM32串口通信
串口通信原理 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹
[单片机]
<font color='red'>STM32</font>之<font color='red'>串口</font>通信
使用STM32按键控制LED亮灭
实验环境 Matlab版本 :2021b 操作系统 :Win10专业版 硬件平台 :YF-STM32-ALPHA 1R4 模型与原理图 本次实验所用到的Simulink模型如图5.1所示,实验现象: 按键按下、松开LED循环实现翻转亮灭效果,当按键按下时,产生下降沿脉冲,通过一个计数器对下降沿脉冲进行0~1循环计数,计数到最大值时产生输出信号,输出信号为0时,控制LED熄灭,输出值为1时,控制LED点亮。 按键电路采用对电源负极方式连接,按键松开状态为高电平H,即逻辑1,按键按下状态为低电平L,即逻辑0。 图5.1 按键控制LED亮灭simulink模型 图5.2 按键控制LED亮灭原理图 图5.3 按键在开发板
[单片机]
使用<font color='red'>STM32</font>按键控制LED亮灭
STM32学习记录——printf函数重定位
功能: 重定位printf函数,使printf作为串口打印输出函数。代替usart_send_string()函数 步骤: usart.c中包含USART初始化函数 1、USART初始化(使能时钟、使能GPIO、GPIO和USART初始化) 2、打开USART 3、在usart.c中加入如下代码 #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker- Libraries- Small printf set to 'Yes') calls __io_putchar() */ #define PUT
[单片机]
聊聊你知道的串口
串口是最简单的串行接口和调试工具 上点年纪的朋友都知道,最早期的51单片机可没有现在的这么多外设,什么内置ADC,SPI,CAN,I2C,DMA等等,唯一有的就只有四种类型的外设:GPIO,定时器,外部中断还有就是我们今天要说的串口。从那时候就出道的工程师一直工作到现在,接触了形形色色的MCU或者MPU,最早期的很多外设到如今已经面目全非了,或许在51单片机盛行的年代,你能很清楚地画出其IO口的内部结构,但是现在单片机的IO口显然要强大且复杂得多。真可谓沧海变桑田。不过,这些外设中唯一有一个到目前为止还是觉得那么亲切,那就是串口。尽管配置方式和之前的51单片机有着很大的不同,但是其最基本的参数如波特率,起始位,数据长度,停止位依旧
[单片机]
聊聊你知道的<font color='red'>串口</font>
stm32 引脚功能设定及应用
GPIO_Mode_AIN = 0x0, 模拟输入 GPIO_Mode_IN_FLOATING = 0x04, 浮空输入 GPIO_Mode_IPD = 0x28, 带下拉输入 GPIO_Mode_IPU = 0x48, 带上拉输入 GPIO_Mode_Out_OD = 0x14, 表示配置相应管脚为GPIO开漏输出(真双向IO) GPIO_Mode_Out_PP = 0x10, 通用推挽输出模式 GPIO_Mode_AF_OD = 0x1C, 表示配置相应管脚为复用功能的开漏输出 GPIO_Mode_AF_PP = 0x18 复用功能的推挽输出模式 推挽输出:可以输出高
[单片机]
STM32 ST-LINK Utility解决错误
使用ST-LINK V2下载程序时,出现以下错误,并且连接线无出错 解决方法: Target --- Settings--- Mode更改为Connect Under Reset
[单片机]
<font color='red'>STM32</font> ST-LINK Utility解决错误
【JZ2440笔记】串口通信
一、前言 串口通信是嵌入式开发中非常常见的调试工具接口,我们大都通过串口的打印输出来确定程序的运行状况,无论是在单片机还是在各种ARM处理器上,基本上都会有串口这个外设,以下是S3C2440的串口调试过程。 二、实验目标 通过JZ2440上的串口0实验与PC机的串口通信,波特率为115200、无奇偶校验位,8个数据位,1个停止位,并且开发板将串口助手发送的数据原样返回给串口助手。 三、串口资源介绍 1、开发板连线 S3C2440有三个串口模块,分别为UART0、UART1和UART2,JZ2440开发板将这三个串口全部引出到排针,其中UART0还通过PL2303芯片转出了一个micro USB接口,原理图如下: 2
[单片机]
【JZ2440笔记】<font color='red'>串口</font>通信
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved