- 博客(22)
- 收藏
- 关注
原创 【无标题】
实时性优先:选择停止模式(Stop 0/1),支持快速唤醒和 SRAM 保留:cite[6]超低功耗需求:选择关机模式或待机模式,牺牲唤醒时间换取更低功耗:cite[5]:cite[7]开发调试:优先使用停机模式,避免待机模式导致系统复位:cite[1]STM32L4xx 参考手册 RM0394。
2025-03-13 09:32:48
734
原创 EEPROM与FLASH的差别
操作粒度EEPROM 支持字节级擦写,灵活性高;Flash 需整块擦除,适合批量数据操作。寿命与容量EEPROM 寿命长但容量小;Flash 容量大但寿命较短(尤其是 NAND Flash)。成本与速度EEPROM 成本高、速度慢;Flash 成本低、速度快。
2025-03-13 08:47:10
341
原创 嵌入式常用通信协议对比(I2C、SPI、UART、CAN 及其他)
常见的通信协议如IIC、SPI和USART(UART)在嵌入式系统和电子设备中有不同的应用场景和特性
2025-03-13 08:41:25
789
原创 IIC通讯协议讲解,及软件模拟IIC通讯
IIC(Inter-Integrated Circuit)是一种串行通信协议,也被称为I2C(Inter-IC),它是Philips公司开发的一种多主机、多从机的协议。它可以实现在很短的距离内由多个芯片组成的系统中的彼此之间的高速串行通信,用于连接芯片和外设,如温度传感器、电子罗盘、LCD驱动器等。
2023-06-15 16:39:30
6429
原创 面向对象基础
当成员变量出现指针类型时,默认的拷贝构造函数是基于赋值操作的,因此在拷贝的过程中,会出现指针的拷贝,会造成多个对象的属性指向同一个内存区域的问题,这样的现象不符合面向对象的设计规范。在4.3.2节中,深拷贝的示例代码虽然解决了指针作为成员变量拷贝对象的问题,但是在构造函数中开辟的内存区域,没有得到合理的释放,造成了内存泄漏的问题。静态成员函数可以调用其它静态成员,但是不能调用本类的非静态成员,其原因在于静态成员函数没有this指针,而类中非静态成员的调用都是通过this完成的。
2022-09-19 10:36:55
381
原创 用C语言设计线程,实现一个线程输出打印1-52,另一个线程打印A-Z, 输出的结果为: 12A34B......5152Z
用C语言设计线程,实现一个线程输出打印1-52,另一个线程打印A-Z, 输出的结果为: 12A34B......5152Z,提供了两种方法
2022-09-01 21:22:53
879
原创 如何用C语言写一个简单的教务管理系统
通过C语言,使用带头节点的链表,通过申请堆空间的内存来保存数据,实现对管理员、老师、学生信息的一系列操作。
2022-08-27 14:36:20
10117
13
原创 队列的相关知识
先定义一个结构体用来保存数据,为了方便链表操作在定义一个结构体来表示这个队列第一个节点和最后一个节点。可以用顺序结构通过数组来实现,也可以用链表来实现。今天就拿链表来举例。首先是需要明确的一些必备操作。如何判断队列为空呢?
2022-08-24 08:33:52
268
原创 链表的相关知识
顺序结构是连续的存储空间,方便查找,但是增加与修改比较麻烦,链表是链式结构,不会导致空间的碎片化,而顺序结构会导致这个问题。链表因为存储不是连续的所以查找比较麻烦,但是删除添加比较方便。
2022-08-22 18:56:10
407
原创 关于循环的一些小知识
先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束;当执行到goto语句时,程序会跳转到**同一函数**内goto语句所指向的标号处,例如下图,goto语句执行后,程序会自动跳转到label_1标签处。**表达式2**判断循环结束的条件。**表达式1**循环的初始条件,只执行一次。**表达式3**作为循环的调整(即改变循环状态),在执行完循环体之后执行。...
2022-07-27 20:11:14
355
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人