专注于嵌入式技术分享!
程序的组成、存储与运行 程序的组成、存储与运行
一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM, RAM 相当于内存, Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。 一、编译过程之前分享过C程序的编译过程的笔记:C程序
2019-08-28
【C语言】代码优化的一些经验及小技巧(一) 【C语言】代码优化的一些经验及小技巧(一)
一、变量与值得比较1、布尔变量与零值的比较不可将布尔变量直接与 TRUE、 FALSE或者 1、 0进行比较 。据布尔类型的语义,零值为“ 假”(记为 FALSE),任何非零值都是“ 真”(记为TRUE)。 TRUE的值究竟是什么并没有统
2019-08-27
【STM32】什么是通讯? 【STM32】什么是通讯?
一、什么是串行通讯与并行通讯?按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。 而并行通讯一般是指使用 8、 16
2019-08-23
【C语言笔记】goto语句 【C语言笔记】goto语句
关于C语言的goto语句存在很多争议,很多书籍都建议“谨慎使用,或者根本不用”。这里先不做过多的讨论,存在即合理,既然是C语言中的一个知识点,我们还是有必要学会使用。先看一些goto如何用: 一、goto的基本语法goto语句有两部分:g
2019-08-22
【STM32】串口空闲中断接收不定长数据(DMA方式) 【STM32】串口空闲中断接收不定长数据(DMA方式)
在使用STM32的串口接收数据的时候,我们常常会使用接收中断的方式来接收数据,常用的是RXNE。这里分享另一种接收数据的方式——IDLE中断(PS:本文的例子运行在STM32F103ZET6上)。 一、IDLE中断什么时候发生?IDLE就
2019-08-18
【工具】嵌入式中另一种打印调试的方法 【工具】嵌入式中另一种打印调试的方法
一、前言在我们的嵌入式开发中,常常把printf重定向到MCU的串口外设,再配合上位机界面软件,通过打印调试信息的方式来调试我们的嵌入式软件。 此处,我们介绍另一种打印调试的方法——SEGGER 的RTT 。RTT全称是Real Time
2019-08-16
【工具】提取代码中的关键信息生成技术文档 【工具】提取代码中的关键信息生成技术文档
一、前言以前,我们学C语言的时候,多多少少都查过一些标准库函数吧。这里介绍查找C语言的标准库函数的两种方法:一种方法是直接到http://www.cplusplus.com这个网站上去查看: 这里覆盖了C语言标准库中的所有函数,给出了每
2019-08-13
【C语言】assert怎么用? 【C语言】assert怎么用?
一、什么是assert()?编写代码时,我们总是会做出一些假设,断言(assert)就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何
2019-08-12
【C语言】联合体 【C语言】联合体
一、什么是联合体?在C语言中,变量的定义是分配存储空间的过程。一般的,每个变量都具有其独有的存储空间,那么可不可以在同一个内存空间中存储不同的数据类型(不是同事存储)呢? 答案是可以的,使用联合体就可以达到这样的目的。联合体也叫共用体,在
2019-08-01
【DSP】TI官方例程中切换RAM、FLASH工程版本的方法 【DSP】TI官方例程中切换RAM、FLASH工程版本的方法
一、前言 我们用Visual Studio来开发程序时,可以选择编译Debug版本,也可以选择编译Release版本。Debug版本为调试版本,Release版本为对外发布版本。 同样,在我们嵌入式软件中,也有类似这样子的做法。在嵌入式中
2019-07-30
【DSP】下载程序遇到的问题及解决方法 【DSP】下载程序遇到的问题及解决方法
一、前言最近拿到了一块TI官方的DSP开发板,芯片型号是:TMS320F280049C,板载调试器XDS110。但是下载程序时遇到了一点问题,现记录总结如下: TMS320F280049C特性: 二、下载程序时遇到的问题及解决方法
2019-07-25
【计算机网络】基于C语言的天气客户端的实现 【计算机网络】基于C语言的天气客户端的实现
一、前言上一篇笔记分享了【socket笔记】TCP、UDP通信总结,这一篇分享一个用C语言写的、基于TCP的一个HTTP天气客户端的实现,这个一个控制台应用程序,最终的界面如下: 关于天气预报,之前我已经用STM32+ESP8266 w
【计算机网络】TCP、UDP通信总结 【计算机网络】TCP、UDP通信总结
一、什么是socket?Socket的英文原义是“孔”或“插座”。在编程中,Socket被称做套接字,是网络通信中的一种约定。Socket编程的应用无处不在,我们平时用的QQ、微信、浏览器等程序,都与Socket编程有关。我们平时使用浏览
基于STM32的智能天气预报系统 基于STM32的智能天气预报系统
1、作品介绍首先,看一下作品的演示视频: 天气预报系统 温馨提示:因为是进行人机对话演示,所以应打开音量观看哈。 这是本人的毕业设计,一个智能的天气预报系统。显示屏上显示各种天气指标及实时显示时间日期等。可以使用触摸屏输入城市名称搜索天
2019-06-20
JSON的简单认识 JSON的简单认识
1、什么是JSON?JSON(JavaScript Object Notation):JavaScript 对象表示法。其是一种轻量级的数据交换格式,简洁和清晰的层次结构使得其成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析
2019-06-15
【C语言】关于数组的一个陷阱! 【C语言】关于数组的一个陷阱!
1、问题 两个数组元素的地址相减得到什么? 先看一段代码: #include <stdio.h> int main(void) { int a[]={0,1,2,3,4,5};
2019-06-03
【Linux】Windows与Linux文件互享 【Linux】Windows与Linux文件互享
1、前言之前分享了Linux下vim编译器简单的使用方法:【Linux笔记】Vi/Vim编辑器。如果觉得不习惯的话,也可以不用vim进行编辑。我们可以使用Windows上的一些编辑器先编辑好代码,然后再传到Linux下进行编译即
2019-05-27
【Linux】make工程管理工具(二) 【Linux】make工程管理工具(二)
1、前言上一篇笔记分享了使用make工具编译C程序的方法(【Linux笔记】make工程管理工具(一)),但是还未分享make工具是什么,本篇笔记就来看一下make工具是什么吧。 make和Makefile(或者makefile)文件提供
2019-05-18
11 / 15