历史上的今天
返回首页

历史上的今天

今天是:2024年09月01日(星期日)

正在发生

2018年09月01日 | 使用STM32的串口进行大量数据传输

2018-09-01 来源:eefocus

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

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


推荐阅读

史海拾趣

ELPIDA公司的发展小趣事

ELPIDA公司成立于1999年,是日本在DRAM(动态随机存取存储器)领域的重要企业。它的成立是对当时日本半导体产业的一次重要整合,由NEC、日立、三菱电机等公司的DRAM业务合并而成。这一举措旨在振兴日本在DRAM领域的竞争力,并保护国内DRAM产业。

蓝箭(BLUE ROCKET)公司的发展小趣事

蓝箭电子始终重视创新能力,不断加大研发投入,推动产品的升级换代。公司还积极拓展国际市场,寻求更多的合作机会。未来,蓝箭电子将继续秉承创新、质量、服务的理念,为电子行业的发展贡献更多力量。

这些故事仅是对蓝箭电子在电子行业发展中一些重要节点的概括,具体的发展过程和细节可能还需要进一步了解公司的历史资料和市场动态。希望这些信息能够满足您的需求。

CYAN公司的发展小趣事

1996年,瑞典的工程师Jan Nilsson在电子行业中创立了CYAN公司,专注于高性能网络设备的研发。在初创阶段,CYAN就凭借其独特的技术理念和创新的产品设计,赢得了市场的初步认可。公司推出了一款具有高效能和高可靠性的网络交换机,解决了当时网络传输中的瓶颈问题,从而在市场中崭露头角。

Dantona Industries公司的发展小趣事

Dantona Industries公司的创始人,Daniel Tona,在电子工程领域拥有深厚的背景。他看到了电子行业的巨大潜力,决定创立自己的公司。起初,他只有一间小办公室和几个志同道合的伙伴。为了节省成本,他们经常需要亲自采购材料、组装产品,甚至进行市场推广。在这个过程中,他们遇到了资金短缺、技术难题以及市场竞争等多重挑战。然而,凭借对技术的执着和对市场的敏锐洞察力,Daniel Tona带领团队一步步克服困难,逐渐在电子行业站稳了脚跟。

ELESTA GmbH公司的发展小趣事

2013年,ELESTA公司更名为ELESTA GmbH,这一品牌重塑标志着公司进入了新的发展阶段。同时,ELESTA也开始实施全球化战略,积极拓展国际市场,通过不断提升产品质量和服务水平,赢得了全球客户的信赖和认可。

Ho Chien Electronics Group Inc公司的发展小趣事

2013年,ELESTA公司更名为ELESTA GmbH,这一品牌重塑标志着公司进入了新的发展阶段。同时,ELESTA也开始实施全球化战略,积极拓展国际市场,通过不断提升产品质量和服务水平,赢得了全球客户的信赖和认可。

问答坊 | AI 解惑

linux驱动入门篇2字符设备驱动

Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ()、close ()、read ()、wr ...…

查看全部问答>

想在广州找个嵌入式的实习,哪位提供下线索

想在广州找个嵌入式的实习,哪位提供下线索…

查看全部问答>

问几个关于SIM卡的东西

请问1、USSD,2、GSM string,3、FDN SDN 这三样东西是什么? 我连是什么都不知道所以不知道怎么下手,请给个基本思路,谢谢…

查看全部问答>

!求助,关于stc-isp下载器v4.8以上版本各选项的详细说明!

百度了半天,还是没有找到这个版本各中选项的详细说明,用过的前辈有资料的请指教一下,比如什么\"每次下载重新调入已在打开在缓冲区的文件\"....等等等等,十分感谢!…

查看全部问答>

知名外企(北京)招聘手机基带工程师,手机电路工程师

招聘手机Baseband Engineer & Electrical Engineer(北京) 职位要求: 1. 本科及以上学历背景 2. 具有三年以上手机基带,电路设计工作经验 3. 英语读写能力强。 有意者请与我联系: Email:sindyshi@chinacareer.com Tel: 010-58790033-2 ...…

查看全部问答>

底层开发程序

有一设备地址:60.214.117.229  开放端口:10001 该设备遵循DL/T-645协议。 请用C++写一段小程序读取它的数据。…

查看全部问答>

外资公司深圳代表处直聘

招聘职位:1〉WinCE GUI 工程师              岗位职责: 嵌入式Wince上层/GUI软件开发,嵌入式WinCE应用软件开发               职位要求:     ...…

查看全部问答>

if ((P1 & 0x07) != 0x07)什么含义?

if ((P1 & 0x07) != 0x07);按位与,又不等于,结果是1,既然是1,这样的目的是什么?请教,先谢了!…

查看全部问答>