自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 收藏
  • 关注

原创 typedef公众号文章合集

typedef公众号文章合集。

2023-07-10 21:59:23 885

原创 Keil中C编程如何将函数分配在固定地址?

如何在Keil中将函数分配在固定地址?

2024-03-06 11:18:07 234

原创 加个变量,程序崩了

加个变量,程序崩了。

2024-01-22 20:37:04 1005

原创 关于海明码,我悟了

常说的海明码指的是(n,k)=(7,4)海明码,信息为为4,监督位为3,总长7位。海明码的最小码距为3,海明码能够检两位错或者纠正一位错误。海明码默认采用偶校验

2023-03-23 21:55:59 3996 4

原创 MarkDown设置上下标

MarkDown设置上下标

2023-03-15 22:04:03 952

原创 为什么C语言执行效率高,运行快?

为什么都说C语言执行效率高,高在哪里?

2022-11-04 22:02:10 4083 7

原创 二维数组与二级指针

二维数组是数组的数组,二级指针是指针的指针,那么他们有哪些相关联的地方呢?

2022-10-23 18:43:37 613

原创 条件编译总报错,该如何解决?

条件编译总报错,该如何着手?

2022-08-22 21:06:37 379

原创 SOLID五大原则【图解】

做C语言开发的应该都知道,C是面向过程开发的,而c++是面向对象开发的。而封装、继承与多态是面向对象开发的三大特征。但你可能不知道OOD(Object-Oriented Design)还有五大基本原则,被Bob大叔称为SOLID原则,字母为每个原则的首字母,遵循这些原则能够让你的代码在扩展性、维护性以及重用性提高。而这些不正是我们所追求的吗?......

2022-07-28 22:28:52 1207

原创 C语言结构体struct详解

在实际的开发过程中,一组数据往往具有不同的数据类型,此时数组是不能够满足需求了。因为数组中各元素的类型必须是一致的。为了解决这个需求,C中给出了另一种数据类型-结构体,每一个成员可以是任意一种数据类型...

2022-07-25 22:12:40 3145

原创 两种存储器,三种内存大小,六段段

Flash Memory(闪速存储器)是一种安全、快速的存储体,具有体积小、容量大、成本低、掉电不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。Flash是,即在物理结构上分成若干个物理块,区块之间相互独立。Flash写操作必须,Flash只能将数据位由1写成0,不能从0写成1,所以在对存储器写之前必须先执行擦除操作,擦操作的最小单位是一个区块,而不是一个字节。RAM(Random Access Memory)又称随机存取存储器,也叫内存,是与CPU直接交换数据的内部存储器。速度很快,断电RA

2022-07-10 10:36:22 169

原创 如何有效取余,非%不可吗?

在编写程序过程中,通常会对对某些数据进行取余操作,这个时候我们通常都会用到%运算符,但是除了%就不能用其它方法吗?答案是有的,而且执行效率也比使用%高,但是使用起来会有一些条件限制。接下来我们就以6对4取余来分析,测试环境为Keil和STM32。下图为使用%求余过程由此可见,除了第一次将初值6赋值为r1寄存器,在对4求余的过程中,使用了MOV、ADD、SUB以及ASR共5次汇编指令。下面也给出了每个汇编指令的表达式,最右侧有注释,有兴趣的可以看下 4: int

2022-04-10 11:27:26 1953

原创 ARM汇编STM&LDM知多少?

前述在日常编写Bug的时候,不知是否经过这样一种情况,我明明只是在函数中多加了一个临时变量,结果程序执行就异常了。我屮艸芔茻...我碰到的一次情况是该函数程序访问数组本来就越界了,但是还能正常工作,就因为加了一个临时变量,栈内容发生了变化,就因为一个变量的偏移,在对数组操作时刚好设置给了LR寄存器,导致子程序返回有误,程序执行逻辑异常。上述的这种问题,常规调试是无法发现的,甚至问题出现在那个地方都定位不到。都说汇编代码时程序员的最后一根救命稻草。接下来就来介绍一下汇编中最常用的STM/LD.

2022-04-07 21:14:41 2284

原创 Keil断点进阶用法,不看后悔

目录1、前序2、断点简介2.1、exp2.2、cnt2.3、cmd3、表达式(exp)3.1、ExecName3.2、Path3.3、Module3.4、Identifier4、命令(cmd)5、 设置断点方式5.1、手动设置断点5.2、观察窗中设置断点5.3、命令窗中设置断点6、文中问题6.1、变量何时改变的?6.2、变量被改变了多少次才出现的问题?6.3、当这个变量被设置成某个数据后,我想让程序暂停下来继续分析...

2022-03-23 19:57:07 5030

原创 UC/OS-II 源码下载【资源】

µC/OS-II 如何在官网下载,以及STM32的示例代码。

2022-02-26 18:12:41 3607 2

原创 UC/OS三种临界区管理机制

UC/OS三种临界区管理机制

2022-02-26 09:51:58 1198

原创 vs code安装离线扩展包

在内网中使用vs code,由于内置的应用商店无法连接网络,所以一些扩展包便无法使用,这个时候因该如何解决呢?解决这个问题只需要两个步骤:1、下载离线扩展包首先需要一个联网的电脑到“https://marketplace.visualstudio.com/”网站下载自己所需要的包,再此以Python为例,如下图:点击进入扩展包详细界面,在右下角可以找到Download按钮,文件后缀名为VSIX(Visual Studio Extension Package),如下图:2、安装扩展包在vs c

2021-11-05 21:34:05 2257

原创 git如何使用notapad++作为默认编辑器

git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

2021-06-26 11:28:45 301

原创 SQLite接口与回调

目录1、SQLite接口1.1 open1.2 exec1.3 close2、exec中的回调函数3、例程代码1、SQLite接口1.1 openSQLITE_API int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */);1.2 execS...

2021-06-26 11:27:28 223

原创 不识烫烫烫屯屯屯,还说是攻城狮?

作为一名码农,想必都知道Hello World,什么,你竟然不知道?哦,那你可能不是码农,抬走,下一个。言归正传,在码农界,存在一首打油诗,我带大家一道欣赏。手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘。如果非要给一个诗名,我希望是“码到成功”。在此说一下“烫烫烫”以及“屯屯屯”的梗以及原理。在Visual Studio中,未初始化的栈空间默认值是0xcc,未初始化的堆空间默认值是0xcd。而在GB2312编码中,0xCCCC对应的中文是“烫”。0xCD

2021-06-26 11:20:54 471

原创 PSW

PSW即程序状态字(Program Status Word),有些教材也叫当前程序状态寄存器(current program status register),定义如下:注意在开关中断这里,1代表是禁止中断。

2021-05-09 13:41:56 1828

原创 C库函数-printf()

printf为C语言中的库函数,需要包含头文件stdio.h,能够发送格式化输出到标准输出stdout,printf函数的声明如下。int printf(const char *format, ...)printf() 的格式控制字符串组成如下:%[flags][width][.precision][length]specifier%[标志][最小宽度][.精度][长度]说明符,其中[]代表可选的。1、flags(标志)1.1、-在给定的字段宽度内左对齐,默认是右对.

2021-03-27 10:39:15 1447

原创 socket中的connect提示报错:errno = “EINPROGRESS“

socketconnectioctlsocketerror.h#define EINPROGRESS115 /* Operation now in progress */

2021-01-06 21:32:34 3695

原创 WIN10没有照片查看器【已解决】

按快捷键WIN+R调出命令窗口,输入regedit打开注册表 定位到“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations”目录 建立和下表相同的配置,就可以在打开方式使用照片查看器打开png、bmp等图片了...

2021-01-05 22:15:15 883

原创 无法访问 文件目录损坏且无法读取

WIN+R,调出命令行,输入cmd,输入如下命令,自行检查好了盘就能正常用了。最好是使用管理员的身份打开,直接去电脑端cmd目录中找。chkdsk h: /f

2020-09-26 14:37:37 3120 4

原创 remote: HTTP Basic: Access denied

git命令操作时,报错remote: HTTP Basic: Access deniedfatal: Authentication failed for 'http://gitxxxxxxxxxxxxxxxxxxx去控制面板中的Windows管理凭证删除,在重新使用Git命令,根据提示输入账号密码即可。

2020-09-18 09:10:27 173

原创 3.1 嵌入式软件基础

1、嵌入式系统的体系结构1.1、无操作系统的情形循环轮转方式for() {//do something}前后台系统前后台系统是在循环轮转的基础上增加了中断处理功能。中断服务程序(Interrupt Service Routine,ISR)负责处理异步事件,这部分看做前台系统。而后台系统一般是一个无限的循环。2、设备驱动程2.1、版本支持包设备驱动层也叫版本支持包(Board Support Package,BSP),BSP的思想是把所有与硬件相关的代码都封装起来,并向上

2020-09-16 22:12:15 1314 4

原创 2.1 嵌入式微处理器的分类

1、嵌入式硬件系统嵌入式硬件系统一般由嵌入式微处理器、存储器、输入/输出部分组成。嵌入式微处理器是嵌入式硬件的基础,通常由控制单元、算术逻辑单元和寄存器促成。嵌入式系统银监结构 控制单元: 主要负责取址、译码、去操作数等基本动作。包含两个重要的寄存器,程序 计数器(PC)和指令寄存器(IR)。程序计数器用于记录下一条程序指令在内存的位置,以便控制单元能到正确的内存单元取址。指令寄存器负责存放被控制单元所取的指令,通过译码,产生必要的控制信号送到算术逻辑单元进行相关的数据处理。

2020-09-13 13:08:11 1133

原创 1.3 嵌入式系统的硬件基础

1、逻辑电路 1.1、组合逻辑电路 组合逻辑电路不含存储功能,它的输出值仅取决于当前的输入值,组合逻辑电路一般由门电路组成。 1.2、时序逻辑电路 时序逻辑电路含存储功能,它的输出值不仅取决于当前状态的输入值,还取决于存储单元中的值。触发器是构成时序逻辑电路的基础。触发器按时钟控制分类电位触发 边沿触发 主-从触发触发器按功能分类R-S型触发器 J-K型触发器 D型触发器...

2020-09-12 00:00:51 371

原创 1.2 嵌入式微处理器体系结构

目录1、冯*诺依曼与哈佛结构2、CISC与RISC3、流水线技术4、信息存储的字节顺序4.1、小端格式4.2、大端格式4.3、示例1、冯*诺依曼与哈佛结构冯*诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构哈佛结构是一种将程序指令存储和数据存储分开的存储结构2、CISC与RISC微程序控制的CISC计算机、硬件控制的RISC计算机类别 CISC RISC 指令系统 指令数量很多 较少,通常

2020-09-10 22:56:07 963

原创 第一章 嵌入式系统基础知识

目录1嵌入式系统的定义和组成1.1嵌入式系统的定义:1.2 嵌入式系统的组成1.2.1 硬件层1.2.2 中间层1.2.3 系统软件层1.2.4 应用软件层1嵌入式系统的定义和组成1.1嵌入式系统的定义:以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的计算机系统1.2 嵌入式系统的组成嵌入式系统是由应硬件层、中间层、系统软件层以及应用软件层组成。如下图1.2.1 硬件层硬件层中包括嵌入式微处理...

2020-09-10 21:50:55 367

原创 gitee: Incorrect username or password ( access token )

将本地内容推送到远程会报如下错误,是指用户名密码配置不对,在控制面板中“控制面板\用户帐户\凭据管理器”找到gitee的凭证,重新编辑设置好用户名以及密码即可解决。

2020-08-29 17:26:37 453

原创 atof()

https://en.cppreference.com/w/c/string/byte/atof#include <stdlib.h>#include <stdio.h> int main(void){ printf("%g\n", atof(" -0.0000000123junk")); printf("%g\n", atof("0.012")); printf("%g\n", atof("15e16")); printf("%g\.

2020-08-23 22:45:41 182

原创 .\a.exe: file not recognized: File truncated collect2.exe: error: ld returned 1 exit status

在使用vs code编译程序的过程中,就会报如下错误.\a.exe: file not recognized: File truncatedcollect2.exe: error: ld returned 1 exit status这个是因为使用gcc命令导致的,在执行的时候用了gcc .\a.exe就会导致报错,如果直接使用.\a.exe就能正常执行,哈哈...

2020-08-22 17:11:22 1780

原创 SQL如何查询某字段的值为空的记录

sql中字段的默认有NULL和另一种空白的形式如何取查询这两种存在的记录呢?空白值查询:SELECT * FROM Test WHERE Name = ''NULL值查询:SELECT * FROM Test WHERE Name IS NULL这两个语句查询出的结果是不一样的。...

2020-08-18 09:39:09 21604 3

原创 SQL空字段查询

SELECT * FROM Test WHERE Name IS NULLSELECT * FROM Test WHERE Name IS NOT NULL

2020-08-18 08:58:13 266

原创 如何将MySQL卸载干净(卸载重装出错问题)

由于某种原因我要将MySQL卸载重新装,但是装了之后频频报错,到最后一步的时候总是卡死,在start server这一步。其实网上已经有很多教程了,但是哪一个才适合自己,能解决自己的问题才是最重要的,以下记录我的解决步骤1.卸载MySQL,可以到控制面板中卸载MySQL,也可以在找到MySQL的安装包,重新运行,程序会检测是否安装了Mysql,如果安装了。则会出现Remove选项,也可以卸载。2.将MySQL的安装目录删除,我的目录是C:\Program Files\MySQL3.删

2020-08-12 22:13:27 1571

原创 安装了MySQL,如何使用命令窗口

如果安装了MySQL,不再想使用可视化界面,想使用命令行,应该如何操作呢?例如,我安装了MySQL Server 5.5,我要使用黑窗口,在没有配置环境变量的情况下,先复制安装目录下的bin目录WIN+R,输入cmd cdC:\Program Files\MySQL\MySQL Server 5.5\bin mysql -u root -p 输入密码 出现 mysql> 即为进入命令行如何配置环境变量呢,这样就不用每次都要进sql的安装目录了我的电脑->属性->.

2020-08-12 21:57:29 589

原创 Navicat Premium导入Excel提示无法打开Excel文件

这个时候你需要把你需要打开的Excle文件用office打开在重新导入即可。

2020-08-12 21:38:30 2144

原创 sqlite3 报错SQLITE_MISUSE

操作数据库的正确流程是:打开数据库 修改数据 关闭数据库我是因为没有打开数据库,就直接取查找数据,结果报了这个错误。

2020-07-31 18:49:49 2696

DirectX_Repair_win8_win10

主要是修复系统的dll文件。使用MindManager时提示缺少dll文件,以及应用程序无法正常启动的问题。

2020-04-19

ScrToPic,屏幕截图软件

ScrToPic是一款小巧好用的屏幕截图软件,自身大小不足1M,支持自定义区域、窗口捕捉以及图片的编辑功能。图片保存的类型可以是JPG、BMP、PNG、GIF。这样可以不用为了截图而打开QQ了。来看下ScrToPic这款小工具长什么样子吧。

2018-11-17

STM32F412使用TIM1输出互补的PWM

STM32使用高级定时器TIM1产生互补的PWM,该工程使用STM32CubeMX工具生成并修改实现的。

2018-09-08

emWin按钮演示例程

emWin按钮演示例程emWin按钮演示例程emWin按钮演示例程emWin按钮演示例程

2018-07-21

汉字字库的生成以及显示教程

汉字库源码+FontCvtST.exe + U2C.exe + 字体生成的源码

2018-02-26

memcpy和strcpy源码

网上参考资料写的memcpy以及strcpy的源码,希望能帮助大家。

2018-02-26

Bin2C+程序运行效果.exe+Pic.gif+Pic.c+一个源代码

Bin2C+程序运行效果.exe+Pic.gif+Pic.c+一个源代码,主要调的用emWin模拟器显示GIF图所用到的一些工具。

2018-02-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除