自定义协议的这些典型例子你会了吗?

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!上次分享的《分享一个很酷的上位机软件》中,有如下协议:有位读者朋友问数据为什么要按这样的格式来发。其实这是个自定义协议,这是上位机开发者定义的一个数据交互协议。我们下位机往伏特加上位机发送数据需要遵循这样的协议数据,才能保证上位机能正确识别这些数据。关于自定义协议,对于会的人很简单,对于不会...
📅 2023-04-30 阅读全文 →

联合体的妙用~

一、什么是联合体?在C语言中,变量的定义是分配存储空间的过程。一般的,每个变量都具有其独有的存储空间,那么可不可以在同一个内存空间中存储不同的数据类型(不是同事存储)呢?答案是可以的,使用联合体就可以达到这样的目的。联合体也叫共用体,在C语言中定义联合体的关键字是union。定义一个联合类型的一般形式为:union 联合名{成员表};成员表中含有若干成员,...
📅 2023-04-30 阅读全文 →

C语言经典问题分享:函数不可返回指向栈内存的指针!

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!预备知识:内存的分类C/C++程序占用的内存分为两大类:静态存储区与动态存储区。其示意图如下所示:数据保存在静态存储区与动态存储区的区别就是:静态存储区在编译-链接阶段已经确定了,程序运行过程中不会变化,只有当程序退出的时候,静态存储区的内存才会被系统回收。动态存储区是在程序运行过程中动态分...
📅 2023-04-30 阅读全文 →

物尽其用,分享一个很棒的工具

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!上次分享的《一个很酷的上位机软件》,很多朋友都很喜欢这样子的工具,这样的上位机固然好用,但是这依然依赖于我们的系统资源。本次分享另一种相似的工具、方法,不依赖于系统资源,但需要额外的硬件支持,但是这样一个硬件就是常用的Jlink调试工具。我们常常都只是用Jlink来在线调试程序、下载程序。其...
📅 2023-04-30 阅读全文 →

RT-Thread Studio的使用体验:真香!

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!RT-Thread Studio简介 最近,RT-Thread Studio是RT-Thread最近发布的一款IDE,现在我们来使用一下。首先,软件界面配色效果很棒,看起来很舒服。欢迎界面如下:可以看到欢迎界面包含有很多有用的信息:最新动态、软件试用视频教程、最新PR等。RT-Thread ...
📅 2023-04-30 阅读全文 →

年终总结、无套路送书~

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!精选笔记【socket笔记】TCP、UDP通信总结【socket应用】基于C语言的天气客户端的实现《C语言、嵌入式位操作精华技巧大汇总》《ARM MCU错误代码自动追踪库的使用分享》【STM32笔记】在SRAM、FLASH中调试代码【STM32笔记】另一种打印调试的方法【STM32笔记】IS...
📅 2023-04-30 阅读全文 →

新年快乐~

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!大家新年快乐!新的一年,ZhengN祝各位工作顺利、学习进步!在上一次的推文中,我们进行了2019的年终终结,同时也发布了一个抽奖活动。这是本公众号第一次发布的抽奖活动,刚开始不知道怎么发布抽奖,所以弄得挺久的。本来我觉得免费抽奖是一件特别轻松愉悦的事情,应该很多人都愿意抽。按照公众号近段的...
📅 2023-04-30 阅读全文 →

STM32的map文件学习笔记

前言 前几个月针对公司自己的芯片写了个程序,这个程序有个硬性要求,就是能用的FLASH空间只有4KB,之前已经写得差不多了,最终占用空间3.6KB。这不,最近又得加需求,还剩一点点FLASH空间可以使用,这该如何是好。需求已经加过来了,不行也得行啊。所以就得去优化之前的代码了,这就得研究比较底层的东西了。我们的芯片与其它的MCU芯片用起来都差不多一样。我们...
📅 2023-04-30 阅读全文 →

串口通讯你真的会了吗?不妨看看这些经验

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!平时使用串口打印出现乱码的绝大部分原因是串口波特率没对。那么我们怎么测量实际的波特率呢?在这之前,顺便一起回顾一下波特率的概念。什么是波特率、比特率? 比特率(Bitrate)表示每秒钟传输的二进制位数,单位为比特每秒(bit/s)。波特率(Baudrate)表示每秒钟传送的码元符号的个数,...
📅 2023-04-30 阅读全文 →

送你一个超级简单但很实用的程序模板,用于收集C语言知识点

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!前言 好记性不如烂笔头,我们平时学习也应该多做一些记录,多整理自己所学的知识,以便之后有必要的时候可以回顾。以前我刚开始学习C语言的时候经常需要验证一些比较模糊的知识点,或则想要验证一些函数时,所以我每次都会建一个test.c文件,然后在这个文件里写我的测试代码,测试完毕后常常会删掉该文件。...
📅 2023-04-30 阅读全文 →

厚积薄发,我们一起学RTT UART设备驱动框架

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!UART简介 STM32 芯片具有多个 USART 外设用于串口通讯,它是 Universal Synchronous Asynchronous Receiver and Transmitter 的缩写,即通用同步异步收发器可以灵活地与外部设备进行全双工数据交换。有别于 USART,它还有具...
📅 2023-04-30 阅读全文 →

一文带你认识FPGA~

在我们嵌入式中,有这样一朵奇葩介于软件与硬件之间,这朵奇葩就是FPGA。可能很多平时玩MCU比较多的朋友不太了解。之前我也不太了解,但是最近两年的这两份工作都有与FPGA挂钩,所以我精通FPGA程序的烧写(不仅如此,我还精通电脑的开关机,哈哈):下面我们一起来简单了解一下。什么是FPGA FPGA (Field Programmable Gate Arra...
📅 2023-04-30 阅读全文 →

一文看懂hex文件、bin文件、axf文件的区别

在STM32开发中,经常会碰到hex文件、bin文件与axf文件,这些都是可以烧写到板子里运行的文件。这三个文件有什么区别呢?在这之前,先来一起回顾一下C语言编译的过程:编译的过程 在之前的C语言笔记《C程序的编译过程》中,有简单的分析了C程序编译的几个过程:STM32也是用C语言来开发,也会经过类似的编译过程,只不过我们常常用MDK或者其它IDE来编译,...
📅 2023-04-30 阅读全文 →

你写的程序很健壮?不妨测一下?

这是一篇测试相关的笔记。我们软件开发最终都离不开测试的,可以通过测试来发现很多问题。在这之前先扯谈一波:在这给还没找工作的朋友提个醒,能找开发的职位就别找测试的职位,除非你真的很喜欢测试。亲身经历,做测试很不好受。测试其实有两类,一种是自己去测自己测的东西,另一种是去测别人做的东西。如果是第一种,我也很愿意做,因为我们本质上还是开发工程师,大概80%的工作...
📅 2023-04-30 阅读全文 →

遇到指针别害怕!先把这篇笔记看一遍~

指针在C语言中是一块很重要的内容,也是比较难理解的一块内容,我们需要反复学习反复巩固才可以对其有所了解。之前也分享过指针相关的笔记,但是都比较杂,本篇笔记汇总一下指针相关的内容,包含了挺多指针相关的基础知识点。笔记有点长,可以收藏下来慢慢阅读。复杂类型说明 以下这部分内容主要来自《让你不再害怕指针》:要了解指针,多多少少会出现一些比较复杂的类型,所以,先介绍...
📅 2023-04-30 阅读全文 →

嵌入式大杂烩精选文章汇总

这是一篇汇总文章,汇总过去发过的一些笔记:嵌入式大杂烩 【STM32笔记】在SRAM、FLASH中调试的方法【STM32笔记】另一种打印调试方法【STM32笔记】ISP下载的原理是什么呢?【STM32笔记】串口IAP分享【STM32笔记】复用时钟何时开启呢?【STM32笔记】STM32F429的USB是个坑?【STM32笔记】两块STM32之间的SPI主从通...
📅 2023-04-30 阅读全文 →

双链表的操作示例(附代码)

什么是双链表? 双链表是在操作系统中常用的数据结构,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱,其结点组成如下:其示意图举例如下:双链表的操作示例 1、双链表结点定义:/* 数据元素类型 */typedef int Type;/* 双链表结点结构体 */typedef struct _DListNode{ struct _DListNode...
📅 2023-04-30 阅读全文 →

C语言、嵌入式重点知识:回调函数

前言 上文分享了一个专用的双链表的基本操作示例:双链表的操作示例(附代码)这里提到了一个关键词:专用。与专用对应的词是通用。我们从字面上可以很容易理解这两个词,专用就是针对特定情况的,特点就是很有局限性。通用就是可以针对大多数情况(更理想的就是所有情况),特点就是适用性广。为什么说上篇笔记的双链表是专用的?从我们的定义的元素数据类型就可以知道,我们这个双链...
📅 2023-04-30 阅读全文 →

【RT-Thread笔记】对象容器与双链表

前言 在我们嵌入式中,可能会有些人认为数据结构与算法相关知识没什么用,很少用得上。以前,我也是这么认为的,那东西那么难学,好像又用不上,学了有什么用,干脆就不学了。直到后面深入学习一些东西之后发现,原来那些知识并不是没有用,只是当时我们的认知还不足。废话不多说,下面进入正题:对象容器与双链表 1、RT-Thread中的对象容器RT-Thread 内核对象包...
📅 2023-04-30 阅读全文 →

什么是动态链接与静态链接?

什么是链接? 对于初学C语言的朋友,可能对链接这个概念有点陌生,这里简单介绍一下。我们的C代码编译生成可执行程序会经过如下过程:链接就是把目标文件与一些库文件生成可执行文件的一个过程。关于更详细的编译过程,可查阅往期笔记:【本质】你知道C语言编译的过程吗?静态、动态链接? 1、什么是静态链接?静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链...
📅 2023-04-30 阅读全文 →

应届生求职的那些事

前两天有一位读者朋友问我一个关于嵌入式就业的问题:正好我离开学校的时间也还不算长,也还清晰地记得当时找工作的一些事情。同时,从自己这两年的工作中也得出了经验。所以这里试着分享一下这个话题,希望可以对一些正在找工作或者即将升大四的朋友起到一些帮助。校招与社招 1、校招(1)时间:每一届都有两次校招,一次是秋招(8~11月),另一次是春招(次年3~4月)。今年...
📅 2023-04-30 阅读全文 →

静态链接与动态链接补充(Linux)

前言 上一篇分享了静态链接与动态链接的实验(Windows):什么是动态链接与静态链接?。这一篇分享Linux下的笔记,同时对上一篇笔记做一个补充。首先,我们把静态链接与动态链接做一个这样子的比喻:把链接过程看做我们平时学习时做笔记的过程。我们平时学习时准备一本笔记本专门记录我们的学习笔记,比如在某本书的某一页上看到一个很好很有用的知识,这时候我们有两种方...
📅 2023-04-30 阅读全文 →

C编程实践:推箱子游戏

推箱子大家应该都玩过,应该很熟悉。用C语言怎么来实现一个推箱子小游戏呢?下面分享一个推箱子游戏的源码。这是我以前学习C语言时的一个练习,当然是参考了网上很多例子才搞出来的(我这个之前是参考C语言中文网的例子)。推箱子源码很多,大家都玩得烂了,但这种大家玩得烂的东西是很重要的学习资料,因为例子很多,有利于我们进行学习。做这个推箱子小游戏我们可以思考两个问题:...
📅 2023-04-30 阅读全文 →

【Linux笔记】pc机_开发板_ubuntu互ping实验

最近入手了一块百问网imx6ul开发板,一方面想系统性地学一次嵌入式Linux,争取下一份工作往这个方向混一口饭吃,另一方面也想用一用NXP的芯片。本篇笔记分享的是:pc机_开发板_ubuntu互ping实验,主要是根据教程来走一遍,做个学习记录。硬件连接 关于网络环境搭建这一块是个难点。以前在学校我也有学过嵌入式Linux,被这一块搞蒙了好几次。针对这些...
📅 2023-04-30 阅读全文 →

【Linux笔记】挂载网络文件系统

前言在笔记分享之前先啰嗦几句。首先,感谢大家的关注与支持!最近原创笔记变少了,因为最近复工了,小编白天需要工作,晚上在进行自我充电,有输入才有输出嘛,才能输出更多的学习笔记。所以最近一段比较少写文章。本公众号最近新增分享版块【嵌入式Linux】,今后也会多分享这方面的内容;但原来分享的内容(C语言、STM32相关)也会一直分享,会交叉分享。毕竟单片机还是我...
📅 2023-04-30 阅读全文 →

从单片机工程师的角度看嵌入式Linux

前言 这篇文章简单我们来一起梳理嵌入式Linux的一些知识,方便于一些想跟我一样想要由单片机进阶到嵌入式Linux的朋友做一些参考学习。现在随着嵌入式Linux的教程不断增多,相信应该有不少学单片机的朋友开始折腾这个了吧~嵌入式Linux学哪些东西 1、认识Linux学单片机的朋友有些已经有一些Linux基础了,但也不乏有些朋友没用过Linux,甚至有些初...
📅 2023-04-30 阅读全文 →

通俗易懂,嵌入式Linux驱动基础

前言上一篇分享的:《从单片机工程师的角度看嵌入式Linux》中有简单提到Linux的三大类驱动:我们学习编程的时候都会从hello程序开始。同样的,学习Linux驱动我们也从最简单的hello驱动学起。驱动层和应用层 还记得实习那会儿我第一次接触嵌入式Linux项目的时候,我的导师让我去学习项目的其它模块,然后尝试着写一个串口相关的应用。那时候知道可以把设备...
📅 2023-04-30 阅读全文 →

学习STM32的一些经验分享

前言 前两天在群里看到群友们在讨论学习STM32的话题,并且今天也有一位机械专业的准研究生读者也问了STM32的入门问题。正好我也有一点点经验,所以试着分享一下这个话题。我也不是什么大神,只是一名普通的工程师,以下分享仅仅是自己的一点经验及看法,仅供参考,希望能对一些初学的朋友有所帮助。老鸟略过~~找资料 在知乎,我也有看到类似问题:学STM32要买什么书...
📅 2023-04-30 阅读全文 →

【Linux笔记】LED驱动程序

前言 上一篇我们分享了字符设备驱动框架:【Linux笔记】驱动基础篇,当时分享的是hello驱动程序。学STM32我们从点灯开始,学Linux驱动我们自然也要点个灯来玩玩,尽量在从这些基础例程中榨取知识,细抠、细抠,为之后更复杂的知识打好基础。与硬件无关的LED驱动 回顾hello驱动程序,我们的根据实际需求对其进行写字符串与读字符串操作。这里我们当然也要...
📅 2023-04-30 阅读全文 →

AT指令测试ESP8266通信模组并获取天气数据

ESP8266是一个很好玩的模块,应该有很多朋友都有玩过了,但也不乏有很多没玩过的朋友,下面进行简单介绍。本次笔记分享的是ESP8266 WiFi通信模组的介绍及AT指令测试实验。ESP8266的认识 首先简单认识一下ESP8266。ESP8266 是一颗WiFi芯片,同时,其内部集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MC...
📅 2023-04-30 阅读全文 →