自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UART和USART

USART-通用同步异步收发器是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART,它是在 USART 基础上裁剪掉了同步通信功能(时钟同步),只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 UART。

2023-03-16 14:20:04 94

原创 关于指针函数和函数指针的关系

与指针函数不同,函数指针本质上是一个指针,该指针指向了一个函数。所以它是指向函数的指针,函数的定义是存在于代码段,每个函数在代码段中,也有自己的入口地址,函数指针就是指向代码段中函数入口地址的指针。或者新加函数fun_sum2,直接在调用回调函数的地方将函数指针指向新的函数,无需修改callback函数内部。函数指针 是一个指针 该指针的地址指向了一个函数,总结来说函数指针就是指向 代码段 函数入口地址的指针。指针函数 是一个函数 返回值是一个指针类型。函数指针变量 = 函数名。

2023-03-15 09:16:37 81

原创 嵌入式Linux

入门之后,如果你想从事内核开发、驱动开发,那么可以去钻研几个驱动程序(输入系统、I2C总线、SPI总线等),掌握若干个大型驱动程序后,你对内核的套路就有所了解了,再去研究其他部分(比如进程管理、文件系统)时你会发现套路是如此通用。有些内核是保存在FAT32分区里,于是它要能解析FAT32分区,读FAT32分区的文件。这些概念无论是对驱动开发,还是对应用开发,都很重要所以,对于初学者,我建议必须学习这几个驱动LED、按键、中断。理解中断、进程、线程的概念,无论是对驱动开发、应用程序开发,都是很有好处的。...

2022-07-25 15:41:30 156

原创 Keil编译完成之后 Program Size的含义

为什么Rom中还要存RW,因为掉电后RAM中所有数据都丢失了,每次上电RAM中的数据是被重新赋值的,每次这些固定的值就是存储在Rom中的,为什么不包含ZI段呢,是因为ZI数据都是0,没必要包含,只要程序运行之前将ZI数据所在的区域一律清零即可。ZI-data是(ZeroInitialize)没有初始化的可读写变量的大小,就是程序中用到的变量并且被系统初始化为0的变量的字节数,keil编译器默认是把你没有初始化的变量都赋值一个0,这些变量在程序运行时是保存在RAM中的。Code是代码占用的空间。...

2022-07-20 16:56:22 981

原创 C关键字作用

笼统的说,const的意思是“只能读不能写”。(1)给读你代码的人传达非常有用的信息。例如,在函数的形参前添加const关键字意味着这个参数在函数体内不会被修改,属于"输入参数"。(2)合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改,这样可以减少bug的出现。...

2022-07-18 16:56:23 440

原创 有趣的笔记

利用单片机的GPIO的状态 所谓“高阻态”,是指GPIO对外部电路表现出极大的阻抗。因阻抗很大,几乎不会吸入电流,也不会对外输出电流。1、当只有LED1亮起时,单片机各GPIO的状态如下(带箭头的红线为电流回路): 2、当只有LED2亮起时,单片机各GPIO的状态如下: 3、当只有LED3亮起时,单片机各GPIO的状态如下: 4、当只有LED4亮起时,单片机各GPIO的状态如下: 5、当只有LED5亮起时,单片机各GPIO的状态如下: 6、当只有LED6亮起时,单片机各GPIO的状态如下: 很简单,因为这

2022-07-07 19:38:48 197

原创 MQTT笔记

MQTT消息质量有三个等级,QoS 0,QoS 1和 QoS 2比如目前流行的共享单车智能锁。智能锁可以定时使用QoS level 0质量消息请求服务器,发送单车的当前位置,如果服务器没收到也没关系,反正过一段时间又会再发送一次。之后用户可以通过App查询周围单车位置,找到单车后需要进行解锁,这时候可以使用QoS level 1质量消息,手机App不断的发送解锁消息给单车锁,确保有一次消息能达到以解锁单车。最后用户用完单车后,需要提交付款表单,可以使用QoS level 2质量消息,这样确保只传递一次数据,

2022-07-07 15:55:12 1060

原创 RS485基本知识

RS-485

2022-06-10 10:34:35 19352 2

原创 临界段的保护

临界段的保护一段在执行的时候不能被中断的代码段什么情况下,临界段会被打断?1.系统调度2.外部中断freertos对临界段的保护最终回到对中断开关的控制PRIMASK = 1; 关中断 //PRIMASK 只有单一一位的寄存器PRIMASK = 0; 开中断FAULTMASK = 1; 关异常 // FAULTMASK 只有1个位的寄存器FAULTMASK = 0; 开异常...

2022-05-29 15:37:09 66

原创 栈空间知识

计算机的内存空间:堆区,栈区,和静态区。堆区:用于分配malloc和realloc函数所开辟的内存空间,而这些空间需要用free函数对所开辟的空间进行释放否则会使计算机内存急剧下降,甚至造成死机。栈空间:则用于数据的存储,栈是一种受限制的线性表,限定仅在表尾进行插入和删除操作的线性表。而表尾这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉.

2022-05-29 15:26:52 418

原创 typedef的用法

typedef是类型定义的意思typedef struct 是为了使用这个结构体方便区别:struct node{ }申请node变量时 struct node n若用 typedeftypedef struct node{ }Node;申请变量时,直接写成 Node n; 可以省去一个关键字c定义一个结构体typedef struct Student{ int a; }Stu;声明变量时:Stu stu1如果没有 typedef:st

2022-05-29 15:08:24 75

原创 Free RTOS基本配置总结

重新定义 int 在Free RTOS 中不使用,只使用short 和long类型 在Cortex-M内核的MCU,short 16位 long 32位 char = portCHAR short = portSHORT portTickType = unsigned short int = unsigned int 在Config.h中文件定义 configUSE_16_BIT...

2022-05-29 14:58:18 423

原创 FreeRTOS低功耗原理实现

FreeRTOS 低功耗原理实现

2022-05-26 10:14:43 712

空空如也

空空如也

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

TA关注的人

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