- 博客(22)
- 收藏
- 关注
原创 【中断】STM32F103C8T6中断系统(图示)
外设触发中断请求:例如,定时器溢出或 GPIO 变化触发中断。 2. NVIC 接收中断请求:中断信号传递到 NVIC。 3. 中断优先级比较:NVIC 判断中断是否能立即处理,若能,则执行下一个步骤。 4. 保存上下文:Cortex-M3 自动保存当前 CPU 状态到堆栈中。 5. 读取中断向量表:NVIC 从中断向量表中获取 ISR 的入口地址。 6. 跳转到 ISR(中断处理程序):跳转到 ISR 地址,开始执行中断处理函数。 7. 执行中断服务例程(ISR):处理中断事件,执行相应的逻
2024-07-20 16:53:26 896
原创 【I²C协议】STC89C51单片机IIC通信(代码+原理)
IIC,即I²C,所以中文应该叫 集成电路总线 ,IIC属于半双工同步通信方式。IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,其时钟信号是由主控器件产生。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。IIC总线在传输数据的过程中一共有三种类型信号,分别为:开始信号、结束信号和应答信号。
2024-07-17 18:56:16 987
原创 【 DHT11 温湿度传感器】使用STC89C51读取发送到串口、通过时序图编写C语言
使用80C51单片机通过读取HDT11温湿度传感的数据,发送到串口。通过时序图编写相应的C语言代码。只有一根数据线DATA,单片机发送序列指令给DHT11模块,模块一次完整的数据传输为40bit,高位先数据格式:**8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验**
2024-07-16 17:58:09 700
原创 【 LCD1602显示屏】使用STC89C51控制1602显示、读写操作时序
LCD1602(Liquid Crystal Display)是一种工业字符型液晶,能够同时显示 16×02 即 32 字符(16列两行。初始化LCD1602:发送初始化指令,使LCD1602进入8位模式,并设置显示参数(如光标显示、显示开关等)。 2. 指令发送:使用80C51向LCD1602发送命令和数据。通过控制RS、RW和E引脚,并发送8位数据。 3. 编写显示函数:编写函数以在LCD1602上显示字符和字符串,包括光标移动、清屏等功能
2024-07-16 13:38:29 1077
原创 【无线模块】Wifi模块-ESP-01s的使用
【无线模块】Wifi模块-ESP-01s的使用AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data TerminalEquipment,DTE)向终端适配器(Terminal Adapter,TA)或Terminal Equipment,DCE)发送的。数据电路终端设备(Data Circuit 其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符).每个AT命令行中只能包含一条AT指令;
2024-07-15 19:13:37 453
原创 【STC89C51单片机】串口通信
STC89C51RC/RD+系列单片机内部集成有一个功能很强的全双工串行通信口,与传统8051单片机的串口完全兼容。设有2个互相独立的接收、发送缓冲器,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,,因而两个缓冲器可以共用一个地址码(99H)。两个缓冲器统称串行通信特殊功能存器SBUF。
2024-07-14 23:48:04 1138
原创 【STC89C51单片机】定时器中断系统
中断是一种重要的硬件机制,用于在处理器正在执行程序时,能够及时响应某些外部或内部事件。中断可以临时中止当前正在执行的指令序列,转而去执行专门的中断服务程序(ISR,Interrupt Service Routine),以处理这些突发事件。中断处理完毕后,处理器可以返回原程序的执行位置,继续执行未完成的任务。不同的中断源可以有不同的优先级。当多个中断同时发生时,优先级高的中断会先被处理。例如在8051微控制器中,可以通过中断优先级寄存器(IP)来设置各个中断的优先级。EA总中断要置一 EA = 1。
2024-07-13 20:01:51 255
原创 【C语言】链表的遍历、前插入和后插入
链表是一种数据结构,用于存储具有线性关系的数据元素。与数组不同,链表中的元素在内存中的位置不一定是连续的。链表中的每个元素称为节点,每个节点包含两个部分:数据域和指针域。指针域用于指向下一个节点,从而将各个节点连接起来形成链表。
2024-07-13 19:04:15 150
原创 【Ubuntu】在Ubuntu中鼠标箭头滑动消失
在Ubuntu中鼠标箭头滑动消失,VMware中安装Ubuntu20.04滑动鼠标箭头消失经过多次测试发现只有在主机中设置鼠标属性显示指针轨迹才可以正常显示。
2024-07-13 15:27:30 131
原创 【STC89C51单片机】定时器/计数器的理解
80C51有两个定时器/计数器:Timer 0和Timer 1理解定时器与计数器的区别在于触发计数增加的信号源。作为定时器,每经过一个机器周期计数加1;作为计数器,则是外部引脚(P3.4或P3.5)每检测到一次负跳变即加1。通过寄存器设置,单片机可灵活转换这两种功能。标准C51有2个定时器/计数器:T0和T1。他们的使用方法一致。C52相比C51多了一个T2定时器的本质原理: 每经过一个机器周期,就加1 :寄存器(存储数据的高速小容量存储单元)为什么是1us,我粗俗的理解为方便后期的计算``为什么是1
2024-07-13 11:49:31 1249
原创 【Ubuntu】VMware虚拟机的网络配置(桥接模式)
配置虚拟机的网络,主机:Win11软件:VMware® Workstation 16 Pro镜像:ubuntu-20.04.6-desktop-amd64VMware网络设置主要在虚拟网络编辑器,里面可以进行仅主机、NAT、桥接和自定义的网络设置。当我正常双击打开时只有主机、NAT模式,当我点击更改设置,会设置成桥接模式,但是下次使用时又会出问题
2024-07-12 23:32:50 259
原创 【Ubuntu】FileZilla尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败。解决方案
使用的VMware中Ubuntu的虚拟机,用FileZilla尝试连接出现**状态: 尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败。错误: 无法连接到服务器**但是我在主机和虚拟机之间相互ping是相同的。
2024-07-12 18:57:24 257
原创 【C语言】一个字节有多少位
数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)
2024-07-12 11:50:00 180
原创 【虚拟机】VMware16ubuntu20.04鼠标在移动过程中消失
VMware® Workstation 16 Pro鼠标在移动过程中消失(ubuntu-20.04.6-desktop-amd64
2024-07-12 10:17:05 580
原创 【C语言】结构体指针访问结构体(->的理解)
并不是一个独立的“指针运算符”,而是一个用于指针的成员访问运算符。它用于通过指针访问结构体或联合体的成员。是一个组合运算符,可以看作是解引用运算符 (*) 和成员访问运算符 (.) 的结合。为什么结构体通过指针访问的时使用"->",而不用 " . "
2024-07-10 17:22:56 124
原创 【C语言】字符串与相关操作函数
本文概述了C语言中字符串的定义、操作和内存分配。字符串以空字符'\0'结尾,可通过字符数组或指针定义。区分了`sizeof`和`strlen`函数的使用,解释了动态内存分配函数`malloc`、`realloc`和`free`,以及内存初始化函数`memset`。此外,介绍了如何使用`strncpy`和自定义函数进行字符串复制,并提供了`assert`断言和`strcat`字符串连接函数的使用示例。强调了内存管理和字符串操作时的注意事项。
2024-07-10 11:03:39 1186
原创 函数指针小练习
函数指针是指向函数的指针,可以用来调用函数。它保存了函数的地址,允许通过该指针来调用所指向的函数。函数指针的使用在编写灵活的代码时特别有用,例如回调函数、动态选择函数以及实现策略模式等。
2024-07-07 20:56:19 92
原创 C语言报错:expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before ‘printf‘
C语言报错:expected '=', ',', ';', 'asm' or '__attribute__' before 'printf'
2024-07-07 19:44:03 150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人