- 博客(98)
- 收藏
- 关注
原创 RT-Thread启动流程与函数的自动初始化
在汇编函数阶段主要有以下几步:entry 函数是整个 C 语言阶段的入口函数,调用了 函数。rtthread_startup 函数主要初始化 RT-Thread 系统并跳转到用户程序:rt_hw_board_init 是根据不同的板级编写,主要有以下功能:rt_application_init 函数创建了一个名为 的线程,入口函数为 。在 main_thread_entry 中做了以下事情:rtthread_startup汇编阶段上电复位Reset_Handler 汇编入口设置栈指针 ldr sp
2026-08-20 08:56:52
214
原创 Linux内核时钟
低频的作用是给整个系统提供一个基础的时钟源,低频时钟通常有四种,HSE(外部高配晶振)、HSI(内部高配晶振)、LSE(外部低频晶振)、LSI(内部低频晶振)。锁相环也叫PLL,作用是将低频时钟倍频到高频、经过PLL的时钟通常会达到几百兆或者1G以上。分频器也叫DIV/PSC,作用是将时钟进行分配,得到频率不一样的时钟。时钟复用器也叫MUX,作用是选择不同的时钟源门控也叫GATE,作用是控制时钟的开关struct clk_hw 是从 struct clk 遍历到对应硬件特定结构的句柄。clk_hw通常嵌入
2026-08-07 16:18:26
215
原创 Linux Watchdog(看门狗)
Linux Watchdog(看门狗)是用于监控系统运行状态的机制,当系统死机时会自动重启。它通过设置超时时间并定期"喂狗"来工作,若超时未喂狗则触发系统复位。内核提供了watchdog_device结构体描述设备,包含超时设置等参数,以及watchdog_ops操作函数集实现启停、喂狗等功能。用户空间可通过ioctl命令控制看门狗,如设置超时(WDIOC_SETTIMEOUT)和喂狗(WDIOC_KEEPALIVE)。Buildroot系统提供watchdog命令行工具进行测试,并可配置为后台服务实现开机
2026-08-06 16:11:31
240
1
原创 Proc文件系统
proc文件系统是一个虚拟的文件系统,它是创建在内存上的文件系统。这个文件系统的作用是给用户通过文件的方式查看系统的运行状态,修改内核的配置参数。
2026-08-06 10:06:38
158
原创 Linux内核的等待机制
内核负责将此进程放入相应的等待队列,并记录其等待的具体事件。一旦事件发生(例如,数据到达、锁被释放),内核会唤醒等待队列中的一个或多个进程,将其状态变回“就绪态”,等待调度器再次分配CPU时间片。等待队列是操作系统内核中一个核心的数据结构,它是一个由正在等待某个特定事件或资源的进程组成的链表。完成量可以理解成是简化版的等待队列,它与等待队列的区别是等待队列可以等待多个条件发生,而完成量只能等待一个条件。上面的例子就是一个等待的典型用法,主进程等待事件的发生,中断程序则将事件置位。timeout等待时间。
2026-07-30 10:29:30
249
原创 RT-Thread PIN设备
PIN设备又叫GPIO设备,是MCU输入输出的一种设备,RT-Thread将GPIO抽象成PIN设备,以实现对GPIO的基本操作。比如上面两个GPIO设备,其中一个作为输出控制LED灯的亮灭,一个作为输入判断按键的高低电平。对于GPIO的操作都有以下几点:设置GPIO的方向,是作为输入还是输出设置GPIO的属性,是上拉,下拉,还是推挽、开漏等设置GPIO的高低电平或者读取GPIO的电平如果需要中断,还需要设置GPIO的中断有些GPIO能复用成其他外设功能,比如ADC、UART等。
2024-06-18 18:54:57
1454
1
原创 嵌入式杂记 - MDK的Code, RO-data , RW-data, ZI-data意思
在嵌入式开发中,我们经常都会使用一些IDE,例如MDK和IAR。在这些IDE编译完成之后,通常会在编译界面中会出现如下的数据,很多初学者会对这些数据不太熟悉,本篇文章就以MDK为例简单介绍一下这几个数据的意思,IAR也是类似。
2023-12-08 22:03:56
4630
原创 嵌入式杂记 -- MCU的大小端模式
在进行MCU开发的时候,我们需要注意MCU的数据存储模式,在嵌入式中有两种不同的存储模式,分别是大端模式和小端模式。
2023-11-13 13:33:33
1715
原创 STM32F4X SDIO(九) 例程讲解-SD卡擦除、读写
本节例程基于野火电子的STM32F407的SD卡读写例程进行讲解。上一节中讲解了SD卡设置成4下模式的步骤,本节将会讲解SD卡的擦除和读写操作。
2023-11-11 17:01:47
2677
原创 STM32F4X SDIO(八) 例程讲解 设置SD卡 & SDIO 总线宽度
在上一节中我们已经初始化了SD卡,并获取了SD卡的CID、CSD和RCA地址,接下来就可以对SD卡进行读写操作了,但是在进行读写操作时,还需要提高SD卡的总线宽度和SDIO_CK时钟,加快传输速度。程序经过上面的步骤之后,SD卡就进入了准备状态,此时我们需要将SD卡设置成4位总线的模式,但是并不是所有的SD卡都支持4位总线模式,所以我们需要通过查询SD卡的。这个函数是用来读取SD卡数据线上的数据,返回的一个32位的数据,因为SCR寄存器是64位的寄存器,所以我们需要连续读取两次。
2023-11-07 10:27:06
2326
原创 STM32F4X SDIO(七) 例程讲解-SD_InitializeCards & SD_GetCardInfo
本节例程基于野火电子的STM32F407的SD卡读写例程进行讲解。上一节中讲解了SD卡上电过程,这节将会讲解一下SD卡的初始化过程,包括获取SD卡的CID、CSD和SD卡RCA地址。
2023-11-06 12:22:41
808
原创 STM32F4X SDIO(六) 例程讲解-SD_PowerON
从本节开始将会结合实际的例程讲解SD卡使用,包括SDIO控制器初始化,SD卡初始化,SD卡擦除、SD卡读写等。本例程将会使用野火电子的STM32F407的SD卡读写例程进行讲解。
2023-11-03 11:00:45
2214
原创 STM32F4X SDIO(五) SDIO库函数使用
本节主要讲解STM32F4X的SDIO库函数的使用,后续的例程讲解将会用库函数的方法进行编程,所以先提前了解一下SDIO的库函数。
2023-11-01 12:31:23
868
原创 STM32F4X SDIO(四) SDIO控制器
STM32F4X内部有一个SDIO控制器,开发者可以使用这个控制器跟SD卡进行通信,下面就来简单了解一下STM32F4X的SDIO控制器的使用。
2023-10-31 14:04:37
1532
原创 STM32F4X SDIO(三) SD卡命令与响应
上一节说过SD卡的操作都是基于命令与响应,写操作有写操作的命令,读操作有读操作的命令,这节就来简单看一下SD卡都有哪些命令跟响应。
2023-10-30 09:09:42
2839
原创 STM32F4X SDIO(一) SD卡介绍
在之前的章节中,讲过有关嵌入式的存储设备,有用I2C驱动的EEPROM、SPI驱动的FLASH和MCU内部的FLASH,这类存储设备的优点是操作简单,但是缺点也很明显,就是其存储的容量都不大,都只能存储一些小数据。除了上面说到的几类存储设备之外,还有一种存储设备,就是日常生活中常见的SD卡,SD卡的特点是其存储容量非常大,可以做到几十G的容量,但是其缺点就是操作复杂。
2023-10-28 21:00:45
1308
原创 Pyside6 QTextEdit
Pyside6 QTextEditQTextEdit使用QTextEdit常用函数文本编辑类函数文本框格式设置函数设置文字颜色设置文字背景颜色设置文字格式设置文本框样式程序设置界面设置QTextEdit信号textChanged信号完整程序界面程序主程序QTextEdit类提供了一个用于编辑和显示纯文本和富文本的组件,更多关于QTextEdit的使用可以参考下面的文档https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QTextEdit.htmlQTex
2023-10-24 15:49:17
2279
原创 Pyside6 QFile
Pyside6 QFileQFile使用QFile常用函数文件编辑类函数判断文件是否存在重命名文件删除文件函数复制文件文件内容操作类函数文件打开函数文件关闭函数文件读取函数read函数使用readLine函数使用readAll函数使用文件写入函数追加方式写文件重写方式写文件程序界面程序主程序Pyside6的QFile类提供了一个读取和写入文件的接口,QFile可以操作文本文件和二进制文件。更多关于QFile类的说明可以参考下面的文档。https://doc.qt.io/qtforpython-6/PyS
2023-10-23 11:25:26
760
原创 Pyside6 QFileDialog
Pyside6 QFileDialogPyside6 QFileDialog常用函数getOpenFileNamegetOpenFileNamesgetExistingDirectorygetSaveFileName程序界面程序主程序Pyside6 QFileDialog提供了一个允许用户选择文件或目录的对话框。关于QFileDialog的使用可以参考下面的文档https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QFileDialog.html#qfil
2023-10-21 15:20:03
2854
4
原创 Pyside6 QMessageBox
除了上面5种基本消息框之外,我们还可以自己定义消息框函数作用setText设置消息框文本设置消息框内容设置消息框标准按钮设置消息框默认按钮,也就是默认选择的按钮msgBox.setText("文本内容已经改变.") # 设置消息框文本msgBox.setInformativeText("是否需要保存?") # 设置消息框内容。
2023-10-20 15:32:46
1479
原创 Pyside6 QLineEdit
Pyside6 QLineEditPyside6 QLineEdit文本操作函数文本限制函数设置文本框最大输入个数设置只读设置输入格式文本格式函数设置密码格式设置文本格式程序界面程序主程序QLineEdit控件是单行文本编辑器.用于接收用户输入的字符串数据,并显示字符串数据,输人的整数和浮点数也会当作字符串数据。QLineEdit的功能非常多,下面就来简单说一下常用的一些功能。更多关于QLineEdit的资料可以参考下面的文档。https://doc.qt.io/qtforpython-6/PySide
2023-10-20 13:48:06
1457
原创 Pyside6 Qlabel显示图片、文本
Pyside6的Label控件的作用是显示文本、图片等对象,其使用非常简单。更多关于QLabel的资料可以参考下面文档。
2023-10-19 19:37:47
4090
1
原创 Pyside6 资源系统和资源文件使用
在开发APP过程中,经常需要使用一些文件,图片之类的资源,这些资源都有一个特点,就是跟用户的使用环境无关,也就是说必须独立于系统之外。为此Pyside6引入了资源系统的概念,开发者可以把一些APP使用的资源放到资源系统中,使其成为APP独立的资源管理器,这样APP就可以任何环境下使用资源管理器中的资源。
2023-10-19 15:04:06
1354
原创 Pysied6 ComboBox
Pyside6的ComboBox下拉列表框,可以给用户提供一系列的选项,下面就来简单了解一下Pysied6 ComboBox的使用。更多关于ComboBox的使用可以参考下面的文档。
2023-10-19 11:24:14
1523
原创 STM32F4X TFTLCD ST7735S使用
TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。
2023-10-18 14:55:55
6322
6
原创 STM32F4X OLED使用
STM32F4X OLED使用OLED简介OLED使用OLED驱动芯片SSD1309引脚SSD1309通信协议4线SPI模式3线SPI模式I2C模式OLED地址确认8080接口OLED 8080写模式OLED 8080读模式6800接口SSD1309显示原理SSD1309显存大小SSD1309显存分布SSD1039数据显示MCU操作SSD1309显存方法OLED取模字符取模图片取模STM32F4X OLED例程OLED关键函数讲解数据传输函数画点函数写GRAM完整例程oled.coled.holedfont
2023-10-14 15:08:20
2668
原创 Pyside6 QtabWidget
Pyside6 QtabWidgetQtabWidget使用QtabWidget常用方法设置标签页的标题程序设置界面设置设置当前显示的标签页程序设置界面设置删除标签页程序设置界面设置添加标签页程序设置界面设置例程界面程序主程序QtabWidget是Pyside6中的一个标签页控件,其作用可以是让用户更好划分不同的页面设计功能,将跟功能实现相关的控件都放到同一个标签页中,可以让界面更加简洁美观。更多关于QtabWidget的资料可以参考下面的文档。https://doc.qt.io/qtforpython
2023-10-12 16:36:11
2053
原创 STM32F4X I2C LM75
LM75A是NXP半导体公司推出的一具有I2C接口的数字温度传感器芯片,可广泛运用于系统温度管理、个人计算机、电子设备、工业控制器等方面。I2C 总线接口,器件地址 7 位从机地址 1001xxx,同一总线上可以外扩 8 个器件;供电范围:2.8V~5.5V,温度范围:-55℃~+125℃;11 位 ADC 提供温度分辨率达 0.125℃;温度精度:±2℃(-25℃~100℃) ±3℃(-55℃~125℃)可编程温度阈值和滞后设定点;
2023-10-12 14:02:41
1992
1
原创 Pyside6 ProgressBar
在应用程序中,经常会遇到一些等待事件,比如等待软件安装完成,等待设备的响应等。为了给用户一个直观的感受,通常都会利用进度条告诉用户等待的时间。Pyside6提供了进度条控件供开发者使用。进度条通常都是根据当前等待事件的时间占总时间的百分比,然后将此百分比通过计算显示到进度条上,所以进度条通常会提供修改当前进度数值,设置进度范围等操作。更多关于Pyside6的ProgressBar的使用请参考以下文档。
2023-10-11 10:02:16
2497
原创 STM32F4X 内部FLASH使用
在嵌入式开发中,经常需要实时保存一些数据。如果工程的代码量比较大的话可以使用一些外部的存储器件进行数据的保存。如果工程的代码量比较小则可以利用MCU的内部FLASH进行数据的存储。
2023-10-09 17:32:26
1156
原创 Pyside6 QRadioButton
Pyside6 QRadioBoxQRadioButton使用QRadioButton分组QRadioButton设置文本代码设置界面设置QRadioButton禁用和启用代码设置界面设置QRadioButton设置默认值代码设置界面设置读取QRadioButton状态QRadioButton样式设计代码设置界面设置完整程序界面程序主程序QRadioButton单选框,QRadioButton是一个可以切换选中和未选中的控件,它的作用跟QCheckBox复选框一样,但是复选框可以实现多选多的功能,而单选框
2023-10-09 13:26:52
1375
原创 Pyside6 QCheckBox
QCheckBox是一个选项按钮,可以打开(选中)或关闭(未选中)。复选框通常用于在应用程序中表示某些功能的启用或者禁用。
2023-10-09 09:36:53
1214
原创 Pyside6 QPushButton
按键或命令按键可能是任何图形用户界面中最常用的小部件。按下(点击)按键可以使计算机执行某些操作,或回答一个问题。Pyside6给用户提供了按键控件,用户可以设置按键的触发条件来实现需要的功能。
2023-10-08 10:33:30
1548
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅