- 博客(23)
- 收藏
- 关注
原创 嵌入式笔记 | 正点原子STM32F103ZET6 5 | 串口通信
STM32F103ZET6 具有 5 个串口(USART1、USART2、USART3、UART4、UART5),支持同步和异步通信模式,主要用于数据传输和调试。波特率=串口时钟16×USARTDIV波特率 = \frac{串口时钟}{16 \times USARTDIV}当串口收到数据后,STM32 进入中断,HAL 库调用。处理串口中断,提高代码的可读性和移植性。STM32 的 GPIO 可以配置为。
2025-03-18 20:36:31
735
原创 嵌入式笔记 | 正点原子STM32F103ZET6 4 | 中断补充
在STM32中,每个外设的引脚都有默认的GPIO端口,但有些引脚可以通过重映射寄存器将功能映射到其他端口。这些外部中断可以被屏蔽,并且支持可编程的优先级管理。,主要用于解决引脚复用冲突或优化PCB布线。在对以下寄存器进行读写操作前,必须先打开。,用于管理不同外设和系统的中断响应顺序。STM32 的 NVIC 支持。
2025-03-18 20:10:25
650
原创 嵌入式笔记 | 正点原子STM32F103ZET6 3 | 时钟系统
RCC(Reset and Clock Control)是 STM32 的时钟系统控制模块,负责管理整个芯片的时钟信号。SysTick 是 ARM Cortex-M 内核自带的 24 位定时器,主要用于操作系统心跳时钟或延时。当 HSE 失效时,CSS 可自动切换到 HSI,确保系统继续运行。SystemInit 函数定义在。,用于复位和初始化时钟。
2025-03-18 20:02:14
596
原创 嵌入式笔记 | 正点原子STM32F103ZET6 1
STM32 微控制器的引脚主要分为以下几类:电源引脚(VDD、VSS):用于为芯片提供电源。STM32 通常需要 3.3V 电源,但部分型号也支持 5V 兼容输入。晶振引脚(HSE_IN、HSE_OUT、LSE_IN、LSE_OUT):连接外部高频(HSE)和低频(LSE)晶振,用于提供时钟源,提高系统精度和稳定性。复位引脚(NRST):用于硬件复位 STM32。当外部施加低电平时,芯片复位。下载引脚(SWDIO、SWCLK):用于调试和下载程序,支持 SWD(串行线调试)协议。
2025-03-17 20:19:23
1055
原创 KEIL报错解决 error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
正点原子战舰开发板V4,采用STM32F103ZET6型号,启动文件应使用stm32f103xe.s,若在创建项目时StartUp下添加了其他启动文件,链接器会无法确定使用哪个作为入口点(通常是。如上,stm32f103xb.s是支持C8T6型号的启动文件,但不意味着都添加进StartUp就能同时对ZET6和C8T6编写程序,要确保只有一个 RESET 入口。如果有多个,删除(或排除)错误的一个,只保留一个正确的启动文件即可。
2025-03-05 14:51:50
1221
原创 STC89C52RC | 电子万年历 | 普中A2板载(已解决DS1302与DS18B20冲突)
开机时,LCD1602默认显示初始化日历时间和温度值,当按下K1键第1次,进入日期和时间设定模式,此时光标会在要调整的时间位置闪烁,可通过K3键进行数据加1,如需切换所要调整的时间位置,可按K2键切换。当按下K1键第2次,进入闹钟设置模式(时-分),此时光标同样在所要调整的时间位置闪烁,可通过K3键进行数据加1,如需切换所要调整的时间位置,可按K2键切换,要让闹钟开启,除了设定对应的时间外,还需要设置闹钟开关为“ON”。当按下K1键第3次,又会回到刚才日期和时间设定模式,如此循环。
2025-02-28 11:50:12
1220
原创 C++测试题累积2
1、(3 分)在 C++中什么可以充当友元?友元是否可以继承,为什么?2、(3 分)分别给出至少两种 C++的基本数据类型、组合数据类型。3、(4 分)构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?
2025-02-21 19:08:17
948
原创 C++测试题积累1
1.关于类和对象不正确的是( )A:类是一种类型,它封装了数据和操作B:对象是类的实例C:一个类的对象只有一个D:一个对象必属于某个类2.在类定义的外部去访问类中的成员,类中的成员可以被访问的有( )A:所有类成员 B:private或protected成员C:public成员 D:public或private成员3.关于this指针的说法错误的是( )
2025-02-21 17:55:31
879
原创 C++智能指针
C++中堆内存的对象在new之后使用,但是没有delete时会产生内存泄漏的问题。由于一些其他的面向对象编程语言都提供了一些自动的垃圾回收机制,因此C++在98标准中也引入了智能指针的概念,并在C++11中趋于完善。使用智能指针程序员可以不用调用delete就自动回收new出的对象。智能指针对象位于栈内存,可以自动回收,此时在智能指针的析构函数中就销毁被管理的堆内存对象,防止堆内存泄漏,这样不需要手动调用delete操作内存。
2025-02-21 17:43:18
873
原创 C++补充:nullptr、类型推导、进制输出、格式化输出
NULL是C语言的空,C++中一直使用,直到C++11中引入了新的nullptr。在C++的源代码中,NULL实际上就是0,这样在一些特殊的情况下,会引发二义性问题。
2025-02-21 17:35:45
181
原创 C++异常处理
实际开发中,需要开发团队把自定义异常加入其中,标准异常的头文件可以使用 #include <stdexcept>。//自定义异常public:// throw()是异常规格说明,表示此函数不会抛出异常return "自定义异常:除数为0";// 异常则抛出自定义异常// 4、自定义异常//捕获异常try {
2025-02-21 17:25:16
1051
原创 C++ 面向对象核心
1、成员对象的构造和析构顺序:成员对象先构造,后析构。也就是说,当一个类中包含对象成员时,构造时先创建成员对象,再创建外部对象;析构时先销毁外部对象,再销毁成员对象。2、继承关系中的构造和析构顺序:基类先构造,派生类后构造。析构顺序相反,派生类先析构,基类后析构。3、静态成员的生命周期:静态成员在程序启动时构造,程序结束时析构,不随对象的创建和销毁而改变。静态成员属于类,而不是属于某个对象,所以无论创建多少个对象,静态成员都只存在一份。
2025-02-21 10:54:06
763
原创 C++ 面向对象基础
此时应手动实现深拷贝。封装(Encapsulation):将数据和操作数据的函数封装在一起,隐藏实现细节,提高代码安全性和可维护性。封装是指将类的属性私有化(private),并提供公共方法(public)进行访问,以提高数据安全性。多态(Polymorphism):相同的接口可以有不同的实现方式,提高代码的灵活性和可扩展性。类(Class):是一种抽象的模板,定义了一组对象具有的属性和行为。对象(Object):是类的具体实例,使用类的定义创建的实体。类由**属性(成员变量)和行为(成员函数)**组成。
2025-02-11 21:47:26
202
原创 C++ 进阶
C++ 允许多个函数使用相同的名称,只要它们的参数列表不同。写一个函数,用来计算员工工资,普通员工的工资只有基本工资,销售的工资包括基本工资和奖金,函数重载形式给出这两个函数。值传递只是拷贝了变量的副本,不会影响原始变量,而引用传递和指针传递都会直接修改原始变量的值。注意:如果某个参数设置了默认值,则它右侧的所有参数都必须有默认值,否则会导致编译错误。内联函数适用于那些执行时间短、代码量小的函数,例如简单的数学运算或数值比较。注意:函数重载不能单独依靠返回值进行区分,必须基于参数类型或参数数量的不同。
2025-02-11 21:39:25
325
原创 C++ 基础入门:数据类型与输入输出
布尔类型 (bool) 只有 true 和 false 两个值,输出时 true 显示为 1,false 显示为 0。字符型 (char) 用单引号 ' 表示,如 'a'。在 C++ 中,我们可以使用 cout 输出变量的值。在 C++ 编程中,cout 用于向控制台输出文本。endl 代表换行符,它的作用类似于 \n,用于换行输出。C++ 提供了多种数据类型,包括整型、浮点型、字符型等。\' 单引号 39。\\ 反斜杠 92。\n 换行 10。3.1 整型(整数类型)
2025-02-11 21:21:05
312
原创 C语言-判断练习
(7)、会员卡四位数(开头不为0)求和,会员卡四位数求和大于20时将返利50元,否则不返利根据用户输入的会员卡卡号(四位数),判断是否返利。工作满一年 工资8000以上的人,年终奖为工资的1.2倍,10000以上的的为工资的1.5倍,其它为1个月的工资。工作满两年 工资10000以上的人,年终奖为工资的1.5倍,15000以上的为工资的1.8倍,其它为1个月的工资。工作满三年 工资15000以上的人,年终奖为工资的1.8倍,20000以上的为工资2.5倍,其它为1个月的工资。
2024-12-16 20:43:43
359
原创 C语言数据类型转换
数据类型和表达式都必须加括号, 如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。基本格式为: (数据类型)(表达式),其作用:是把表达式的运算结果强制转换成类型说明符 所表示的类型。ps:赋值运算 右边的必须转换成赋值左边的类型 (如果右边大于左边 出现截断或舍入)。字节小的可以向字节大的自动转换以保证精确度不降低,但字节大的不能向字节小的转换。第二行和第四行的输出,均把a和10先强制转换为double类型,这样除法不出错。
2024-12-12 15:47:27
228
原创 教材P45,题30
在某班班委成员的选举中,已知王小红、李强、丁金生三位同学被选进了班委会,该班的甲,乙,丙三名学生预言如下,甲说:王小红为班长,李强为生活委员.乙说:丁金生为班长,王小红为生活委员.丙说:李强为班长,王小红为学习委员.班委会分工名单公布后发现,甲、乙、丙三人都恰好猜对了一半.问:王小红、李强、丁金生各任何职(用等值等演求解)?ls = [0,1]for p in ls: for q in ls: for r in ls: for s in l.
2022-03-17 18:21:01
258
原创 教材P25,例2.6
在某次研讨会的中间休息时间,3名与会者根据王教授的口音对他是哪个省市的人判断:甲:王教授不是苏州人,是上海人.乙:王教授不是上海人,是苏州人.丙:王教授既不是上海人,也不是杭州人.听完这3人的判断后,王教授笑着说,你们3人中有一人说得全对,有一人说对了一半,另一人说得全不对.试用逻辑演算分析王教授到底是哪里人ls = [0,1]for su in ls: for shang in ls: for hang in ls: b1 = (su =.
2022-03-17 18:17:45
155
原创 教材P45,题29
题干:在某班班委的选举中,已知王小红,李强,丁金生三人被选入班委会,该班三名同学的预言如下:甲:王小红为班长,李强为生活委员。乙:丁金生为班长,王晓红为生活委员。丙:李强为班长,王小红为学习委员。名单公布后,发现三人都恰好猜对一半,请问三名同学各自何职?ls = [0,1]for p in ls:#p:王小红为班长 for q in ls:#q:李强为生活委员 for r in ls:#r:丁金生为班长 for s in ls:#s:王
2022-03-17 18:13:25
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1