自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (10)
  • 收藏
  • 关注

原创 SPI通讯的数据交互及图片显示

项目背景:项目需要通过MCU作为SPI从机和安卓主机通信显示应用图标、电量信息、开关机动画、主从机交互等功能。

2023-04-05 18:28:56 1625 1

原创 Linux(二)LED驱动程序框架(总线设备驱动)

Linux(二)LED驱动程序框架(总线设备驱动)

2022-09-08 16:45:47 809

原创 Linux(一)LED驱动程序框架(应用层和驱动层分析)

Linux(一)LED驱动程序框架(应用层和驱动层分析)

2022-09-01 19:53:46 891

原创 直流无刷减速电机PID控制

直流无刷减速电机PID控制

2022-08-26 17:55:42 2268 7

原创 嵌入式程序架构的可行性建议

嵌入式程序架构的可行性建议

2022-08-26 11:45:23 212

原创 PID控制电机输出作为电机PWM占空比输入的理解

PID控制电机输出作为电机PWM占空比输入的理解

2022-08-05 11:36:40 10999 25

原创 STM32CUBEMX创建信号量异常分析

STM32CUBEMX创建信号量异常分析

2022-06-08 12:57:11 315 2

原创 JLINK RTT 能打开却不能在桌面显示问题和BIN文件输出注意事项

JLINK RTT 能打开却不能在桌面显示问题和BIN文件输出注意事项

2022-06-05 10:13:20 344

原创 JLINK RTT打印浮点数和负数

JLINK RTT打印浮点数

2022-06-05 09:42:46 847

原创 HAL库更换时钟源

HAL库更换时钟源

2022-05-27 09:50:27 1163

原创 FreeRTOS-Plus-CLI移植

FreeRTOS-Plus-CLI移植

2022-05-11 23:44:58 3507 2

原创 C语言 strcmp、strncpy、sprintf、strncmp函数总结

C语言 strcmp、strncpy、sprintf、strncmp函数总结

2022-05-11 19:24:34 737

原创 HardFault 故障排除

hardfault原因分析

2022-03-23 11:28:59 3493

原创 Free RTOS 中断优先级配置

#define configPRIO_BITS 4#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 //系统可管理的最高中断优先级#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 #define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_

2022-02-22 12:19:45 2930

原创 递归互斥量解决死锁问题

递归互斥量解决死锁问题

2022-02-17 15:23:40 896

原创 I2C总结(单主机和多主机)

I2C总结

2022-02-11 15:37:59 7163 2

原创 RTOS的一些总结

RTOS的总结

2022-01-22 18:44:47 574

原创 推挽输出和开漏输出区别

推挽输出和开漏输出区别

2022-01-22 18:40:19 696

原创 UART和USART总结

UART和USART总结

2022-01-22 18:31:54 497

原创 KEIL 断点调试技巧

keil 断点调试技巧

2022-01-16 11:26:11 12393 2

原创 __attribute__中的section的应用

__attribute__中的section的应用

2022-01-14 15:07:52 562 1

原创 __attribute__中的section的理解

__attribute__中的section的理解

2022-01-14 14:55:09 2206 4

原创 C语言浮点数的发送和接收

C语言浮点数的发送和接收

2022-01-06 11:36:21 1402

原创 C语言之#和##和__VA_ARGS__和##__VA_ARGS__

C语言之#和##和__VA_ARGS__和##__VA_ARGS__

2021-12-30 11:25:18 518 2

原创 SourceInsight主题设置和恢复默认窗口设置

sourceinsight 的一些配置

2021-12-28 13:55:50 5127

原创 常见预编译指令总结

C语言预处理

2021-12-13 18:16:43 458

原创 C语言操作寄存器的方法总结

1、C语言位操作操作寄存器操作位有两种方法,一种是位字段,另一种是使用按位运算符。下表为几种位操作符及其含义:不改变其他位的值的状况下,对某几个位进行设值。在嵌入式编程中,常常需要对一些寄存器进行配置,有的情况下需要改变一个字节中的某一位或者几位,但是又不想改变其它位原有的值,这时就可以使用按位运算符进行操作。下面进行举例说明,假如有一个8位的TEST寄存器:当我们要设置第0位bit0的值为1时,可能会这样进行设置:TEST = 0x01;但是,这样设置是不够准确的,因为这时候已经同时操作到了

2021-11-23 17:35:25 15774

原创 C语言volatile的应用举例

volatile 本意为“易变的”,它的作用是,当程序以一种编译器不知道的方式更改变量时,防止编译器对其进行任何优化(需要注意的是编译器的优化等级)。用volatile定义的变量会在程序外被改变,每次都必须从内存中读取,而不能重复使用放在cache或寄存器中的备份。volatile变量的例子:1、中断的发生,1.char flag = 0;2.3.int main(void)4.{5. ...6. while(1)7. {8. if (flag)9.

2021-11-22 17:57:22 939

原创 C语言const的应用举例

一、常规用法关键字const用来定义只读变量,被const定义的变量它的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量,这也就意味着必须在定义的时候就给它赋初值。用const修饰变量的格式通常为1 const type name = value;代码示例;(第一种方式)1 const int Max;也可以写成下面这种(第二种方式)1 int const Max;通常情况下使用第一种方式(建议将被const修饰的变量的首字母大写),被 const

2021-11-22 17:24:13 464

原创 C语言内存泄漏剖析

大家都知道,在堆上分配的内存,如果不再使用了,就应该及时释放,以便后面其他地方可以重用。而在 C 语言中,内存管理器不会自动回收不再使用的内存。如果忘了释放不再使用的内存,这些内存就不能被重用了,这就造成了内存泄漏,内存泄露只可能出现在堆上。内存泄漏几乎是很难避免的,但是掌握了一定方法还是能很好的降低内存泄露的风险。也许对一般的应用软件来说,这个问题似乎不是那么突出与严重。一两处内存泄漏通常并不致于让程序崩溃,也不会带来逻辑上的错误,而且在进程退出时,系统会自动释放所有与该进程相关的内存(共享内存除外)

2021-11-13 13:11:37 389

原创 C语言结构体的深度剖析

1、(声明结构体类型仅仅是声明了一个类型,系统并不为之分配内存,就如同系统不会为类型 int 分配内存一样。只有当使用这个类型定义了变量时,系统才会为变量分配内存。所以在声明结构体类型的时候,不可以对里面的变量进行初始化。)typedef struct student{   int num;}STUDENT;typedef struct student STUDENT;typedef给struct student起了个新名字叫STUDENT。2、typedef struct tagNode

2021-11-12 09:40:50 1479

原创 C语言动态申请内存造成的内部碎片和外部碎片

C语言支持动态申请内存,就是我们常见的malloc 和 free函数。动态申请内存理论上会极大的节省内存空间。但在用的时候一定注意内存碎片,否则后果不堪设想。所以说动态申请内存的官方函数在没有足够的知识储备前慎用。内存碎片又分为内部碎片和外部碎片:内部碎片:由于申请的时候申请的不是4字节的倍数造成的,例如申请了17个字节,但是系统不会给你分配17个而可能是20个字节,这就造成了内部碎片的产生。解决办法:尽量申请4的倍数的字节,或者对于大内存的单片机来说,可以规定申请的单位是k,就可以避免这个问题

2021-11-11 11:17:29 1692

原创 RTOS行为同步

RTOS行为同步

2021-10-27 11:05:21 573

原创 RTOS信号量与互斥量的理解

信号量和互斥量

2021-10-11 18:13:54 364

原创 嵌入式之地址重映射分析

写STM32程序时,遇到一个困惑,STM32的Flash在MDK里被设置为起始地址0x0800 0000,而CM4手册规定芯片复位时要从0x0000 0000地址开始取出**中断向量表** ,那STM32怎么样执行代码呢?**地址重映射**?或者在0x0000 0000里有对应有实际存储器?仔细阅读手册,发现这件事是因为STM32设计的**Flash起始地址**是在0x0800 0000位置开始的。全部代码都只能从这里开始存储。这样就还有一个问题,理论上,CM4中规定上电后CPU是从0地址开始

2021-09-18 16:06:37 1295 1

原创 FreeRTOS 任务通知相关函数和理解

任务通知函数理解

2021-09-15 14:38:24 1010

原创 关于单片机栈空间的总结

1、如果定义成全局数组,则此数组就会自动初始化为0但如果定义成局部数组,则必须要先初始化2、 局部变量一定要初始化局部变量初始化”是指在使用这个局部变量前,要对其进行初始化。这是因为局部变量是从内存堆中分配的,用完就还给内存堆,所以被分配的局部变量并不一定是0,而很可能是其他地方用过的一个值,因此在使用这个变量之前,要对它进行显示初始化。3、栈空间最大原则,所有子函数中局部变量、数组、函数参数占用的空间中取最大值作为栈空间的最大值。...

2021-07-22 15:41:44 453

原创 FreeRTOS通过相对延时函数分析系统时钟配置

FreeRTOS系统时钟配置理解

2021-06-10 17:26:27 823 2

原创 记录一个小细节导致的惨痛教训!!!

如上图所示:数组的下标为不确定数,这个容易忽略的小细节导致数据没有去对,后续的算法都无法实现,将数组下标设为固定数或无下标,问题解决。看来一定要注重基础呀。或者用动态数组的方式实现都是可以的。comp* h;comp* g;comp* pComp;i=1;do { i*=2;} while (i<N+M-1);L = i;h = (comp*)calloc(L,sizeof(comp));g = (comp*)calloc(L,sizeof(comp));pCom.

2021-06-08 18:18:04 80

原创 涂鸦BT3L蓝牙模组和单片机通信

1、单片机串口的发送函数(按字节发送)和接收中断配置清楚。2、先调试涂鸦APP的下发功能,然后调试上报功能,具体可以用涂鸦官方的调试助手。3、涂鸦SDK的移植按官方的文档即可。4、每次蓝牙模组更换不同APP界面,必须清楚一遍配置。5、两路串口中断同时使用时,串口初始化函数必须分开写,他的那个API的输入参数儿有的是结构体,有的是指针什么的,然后你都用的是同一个参数,然后输入进去之后,可能是不是它的API把这些结构体啊或者参数给改了,出来之后在初始化第二个的时候,他那个参数都不对了。

2021-05-18 17:44:55 1619

JLINK RTT打印浮点数

JLINK RTT打印浮点数替换文件

2022-06-05

Free RTOS脑图文件之事件组

自己总结的Free RTOS脑图文件,方便查询记忆。

2022-05-02

Free RTOS脑图文件之任务通知

自己总结的Free RTOS脑图文件,方便查询记忆。

2022-05-02

Free RTOS脑图文件之队列

自己总结的Free RTOS脑图文件,方便查询记忆。

2022-05-02

Free RTOS脑图文件之信号量(包括互斥量、递归互斥量)

自己总结的Free RTOS脑图文件,方便查询记忆。

2022-05-02

SourceInsightTheme-lgy.zip

SourceInsight 配色主题

2021-12-28

王垠老师的经典文章《编程的智慧》

王垠老师的经典文章,阅读以后感觉非常不错,重新排版提供给各位。

2021-06-11

单片机最经典的算法汇总.zip

单片机经典的算法合计,网上找的太乱,我又重新整理验证了。 1、限幅滤波法(又称程序判断滤波法),2、中位值滤波法,3、算术平均滤波法,4、递推平均滤波法(又称滑动平均滤波法),5、中位值平均滤波法(又称防脉冲干扰平均滤波法)。。。。。。。

2020-06-09

初学者单片机例程(36例).zip

每个例程都有单独的工程,代码注释清晰,适合初学者。单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统

2020-06-09

黑客攻防实战

攻击基本原理与防范技术据统计,在所有黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN攻击,有些网络蠕虫病毒配合SYN攻击造成更大的破坏。本文介绍SYN攻击的基本原理、工具及检测方法,并全面探讨SYN攻击防范技术。

2018-12-27

空空如也

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

TA关注的人

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