自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux应用编程(点亮LED)

方括号([heartbeat])括起来的表示当前 LED 对应的触发模式, none 表示无触发,常用的触发模式包括 none(无触发)、 mmc0(当对 mmc0 设备发起读写操作的时候 LED 会闪烁)、 timer(LED 会有规律的一亮一灭,被定时器控制住)、 heartbeat(心跳呼吸模式, LED 模仿人的心跳呼吸那样亮灭变化)。不用内核的 LED 驱动框架也是可以开发出 LED 驱动程序,驱动程序注册的 LED 那就不是标准设备,向应用层提供的接口并不是统一、 标准化接口。

2024-12-21 18:23:23 974

原创 STM32(HAL_工程模板的搭建)

将 “STM32Cube_FW_F4_V1.24.1\Drivers” 目录下的 “CMSIS” 和 “STM32F4xx_HAL_Driver”复制到工程中的 Lib 目录下。)搜索STM32Cube, 本文使用“STM32Cube_FW_F4_V1.24.1” 版本的HAL库, 使用的是F4的库文件。在Keil中新建一个工程,且命名为 “Project” 保存至 “Project” 目录下。在 “main” 目录下新建 “main.c” 文件。在 “Bsw” 目录下新建 “main” 目录。

2024-12-10 22:54:56 1188

原创 Linux应用编程_2 (文件IO篇)

最高位(权值为 4)表示读权限,为 1 时表示具有读权限,为 0 时没有读权限。中间位(权值为 2)表示写权限,为 1 时表示具有写权限,为 0 时没有写权限。最低位(权值为 1)表示执行权限,为 1 时表示具有可执行权限,为 0 时没有执行权限。最高权限表示方法: 111111111(二进制表示)、 777(八进制表示)、 511(十进制表示)。111000000(二 进制表示):表示文件所属者具有读、写、执行权限,而同组用户和其他用户不具有任何权限。

2024-11-27 01:21:46 822

原创 STM32笔记(串口IAP升级)

IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。通常实现 IAP 功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两部分代码,第一部分程序不执行正常的功能操作,而只是通过某种通信方式(如 USB、 USART)接收程序或数据,执行对第二部分代码的更新;第二部分代码才是真正的功能代码。

2024-11-27 00:27:07 2050

原创 C语言(函数指针)

目录一. 函数指针的基本概念二、函数指针的用途三、函数指针作为参数和返回值函数指针是指向函数的指针。与普通指针类似,函数指针保存的是函数的地址。定义函数指针假设有一个函数:定义一个指向该函数的函数指针:将函数地址赋值给指针并调用:分析: 是一个指针,指向一个返回类型为 、接受两个 参数的函数。函数指针的调用方式与直接调用函数一致。(1) 替代多分支结构函数指针可以用来简化复杂的 或 结构。示例:用函数指针实现简单计算器(2) 回调函数函数指针常用于回调函数,尤其在需要事件驱动或

2024-11-23 22:07:06 379

原创 sysfs 文件系统

sysfs 是一个基于内存的文件系统, 同 devfs、 proc 文件系统一样,称为虚拟文件系统;它的作用是。sysfs 文件系统的主要功能便是对系统设备进行管理,它可以产生一个包含所有系统硬件层次的视图。sysfs 文件系统把连接在系统上的组织成为一个分级的文件、 展示设备驱动模型中各组件的层次关系。

2024-11-12 01:16:25 852

原创 proc 文件系统

proc 文件系统是一个虚拟文件系统,以文件系统的方式为应用层访问系统内核数据提供了接口, 用户和应用程序可以通过 proc 文件系统得到系统信息和进程相关信息,对 proc 文件系统的读写作为与内核进行通信的一种手段。但是与普通文件不同的是,proc 文件系统是动态创建的文件本身并不存在于磁盘当中、 只存在于内存当中,与 devfs 一样,都被称为虚拟文件系统。

2024-11-12 00:44:05 545

原创 Linux应用编程_1 (应用编程概念篇)

系统调用(system call) 其实是 Linux 内核提供给应用层的应用(API) , 是 Linux 应用层进入内核的入口。不止 Linux 系统,所有的操作系统都会向应用层提供系统调用,应用程序通过系统调用来使用操作系统提供的各种服务。通过系统调用, Linux 应用程序可以请求内核以自己的名义执行某些事情,譬如以及控制其它硬件外设。通过系统调用 API,,其关系可通过下图简单描述:系统调用是内核直接向应用层提供的应用编程接口, 譬如等。

2024-11-11 23:52:46 1229

原创 Git (推送到远端仓库)

【代码】Git (推送到远端仓库)

2024-11-01 21:51:24 574

原创 Git 分支操作 (3)

看此篇文章需要会 上一篇文章的内容噢!!!

2024-10-30 23:21:17 549

原创 Git 本地操作(2)

【代码】Git 本地操作(2)

2024-10-30 16:06:29 538

原创 Git 概述及相关命令(1)

Git是一个强大的,广泛用于代码管理和协作开发。

2024-10-30 15:52:11 1098

原创 QT(图表)

模块提供了直观的图表绘制接口,支持创建各种常见的图表类型,如柱状图、折线图、饼图等。QChart主要应用于数据可视化,使得用户可以快速展示和分析数据。

2024-10-26 18:49:02 755

原创 QT(绘图)

QPainter。

2024-10-26 16:58:07 779

原创 QT(多线程)

QThread 是线程类,是实现多线程操作的核心类,一般从 QThread 继承定义自己的线程类。Qt提供了 QMutex、QMutexLocker、QReadWriteLock、QwaitCondition、QSemaphore 等多种类用于实现线程之间的同步。QThread类提供不依赖于平台的管理线程的方法。一个QThread 类的对象管理一个线程,一般从 QThread 继承一个自定义类,并重定义虚函数run0,在run()函数里实现线程需要完成的任务。

2024-10-26 10:18:27 782

原创 QT(文本读写)

QTextStream 与10 读写设备结合,为数据读写提供了一些方便的方法的类,QTextStream 可以与 QFile、QTemporaryFile、QBufer、QTcpSocket和 QUdpSocket 等 IO 设备类结合使用。Qt提供了两种读写纯文本文件的基本方法,一种是用QFile 类的IODevice 读写功能直接进行读写,另一种是利用 QFile 和 QTextStream 结合起来,用流(Stream)的方法进行文件读写。类的成员函数,专门用于打开文件,以便进行读写操作。

2024-10-22 23:39:48 684

原创 boa服务器移植(imx6ull)

在测试之前需要释放开发板上端口80,在正点原子开发板上80端口已经被nginx占用。在根目录下创建boa目录并通过tftp拷贝ubuntu下的。image.jpg 随便找一张图片,放在当前目录。注意image.jpg权限。(可在文件最后一行加)

2024-10-14 23:23:18 689

原创 boa服务器移植

boa服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。boa服务器是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。

2024-10-13 09:27:56 950 1

原创 QT老版本下载指南

再弱弱的说一下,最后一个_有独立安装包的LTS版本就是5.12.12_,至于5.14版本也有下载地址,但是维护时间还没5.12长,我就不贴了。5.15后续版本不提供独立安装包(除了某些花了钱的主,可以向他们要),5.15后续版本个人只有在线安装了。当然顺便说一下,前期QT的5.12.12的独立安装文件(exe)有bug,不知道我是不是第一时间向qt反馈的,反正他们给我回复了,说会撤销前期bug版本,并稍后更新。你要是需要老版本LTS4,我也给你贴一个,

2024-09-19 22:57:46 620

原创 常用存储器

存储器是计算机结构的重要组成部分。,有了存储器计算机才具有记忆功能。存储器按其存储介质特性主要分为和两大类。“易失/非易失”是指存储器,它存储的数据内容是的特性。一般易失性存储器,而非易失性存储器。易失性存储器最典型的代表是,非易失性存储器的代表则是。

2023-03-24 11:29:11 445

原创 BootLoader和U-boot和Linux关系

uboot是一个裸机综合历程,比较复杂。现在的 uboot 已经支持液晶屏、网络、 USB 等高级功能。uboot的主要目的是为系统启动做准备。uboot就是一个bootloader,作用就是启动linux或者其他系统。uboot是一个通用的bootloader,它支持多种架构。uboot不仅仅只能驱动linux,还可以驱动其他系统,比如:vxworks等。同样,linux不仅仅只能有uboot启动。

2023-03-21 00:12:39 551 2

原创 STM32笔记_12(基本定时器)

定时器时钟 TIMxCLK,即内部时钟 CK_INT,经 APB1 预分频器后分频提供,如果 APB1 预分频系数等于 1,则频率不变,否则频率乘以 2,库函数中 APB1 预分频的系数是 2,即 PCLK1=36M,所以定时器时钟。TIM1/8 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO。时钟分频,设置定时器时钟 CK_INT 频率与数字滤波器采样时钟频率分频比,基本定时器没有此功能,不用设置。

2023-03-16 10:43:57 423

原创 STM32笔记_11(DMA—直接存储区访问)

DMA 外设寄存器的地址对应的就是内部 FLASH(我们这里把内部 FALSH 当作一个外设来看)的地址, DMA存储器的地址就是我们自定义的变量(相当于一个缓冲区,用来存储来自内部 FLASH 的数据)的地址。串口向电脑端发送数据为例,DMA 外设寄存器的地址对应的就是串口数据寄存器的地址, DMA 存储器的地址就是我们自定义的变量(相当于一个缓冲区,用来存储通过串口发送到电脑的数据)的地址。方向我们设置外设为目标地址。一般设置为外设的数据寄存器地址,如果是存储器到存储器模式则设置为其中一个存储器地址。

2023-02-09 16:37:01 989

原创 STM32笔记_10(ADC—电压采集)

STM32f103 系列有3 个 ADC,精度为12 位,每个 ADC 最多有16 个外部通道。其中 ADC1 和ADC2 都有 16 个外部通道, ADC3 根据 CPU 引脚的不同通道数也不同,一般都有 8 个外部通道。

2023-02-08 16:23:22 6158 2

原创 FreeRTOS的任务创建和删除

会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前申请的内存, 则需要由用户在任务被删除前提前释放,否则将导致内存泄露。4、更新下个任务的阻塞时间:更新下一个任务的阻塞超时时间,以防被删除的任务就是下一个阻塞超时的任务。1、获取所要删除任务的控制块:通过传入的任务句柄,判断所需要删除哪个任务,NULL代表删除自身。2、将被删除任务,移除所在列表:将该任务在所在列表中移除,包括:就绪、阻塞、挂起、事件等列表。2、实验设计:将设计四个任务:start_task、task1、task2、task3。

2023-02-07 15:13:46 474

原创 FreeRTOS基础知识

调度器就是使用相关的调度算法来决定当前需要执行的任务。FreeRTOS 一共支持三种任务调度方式:主要是针对优先级不同的任务,每个任务都有一个优先级,优先级高的任务可以抢占优先级低的任务(FreeRTOS中任务优先级数值越大,任务优先级越大运行条件:1、创建三个任务:Task1、Task2、Task32、Task1、Task2、Task3的优先级分别为1、2、3;(在FreeRTOS中任务设置的数值越大,优先级越高,所以TASK3的优先级最高。

2023-02-01 10:18:00 587

原创 RTOS入门知识

例子:打游戏和回复信息,不需要等某一件事做完,可每间隔1ms(一个时间片时钟节拍),然后交替做这两件事,因为速度很快,从宏观的意义上来看,类似同步执行!RTOS特点:RTOS全称:Real Time OS,就是实时操作系统,强调的是:实时性。裸机:裸机又称前后台系统,前台系统是指中断服务函数,后台系统是指大循环,即应用程序。例子:打游戏和回复信息,需要打完游戏才可回复信息,或者回复完信息才可打游戏。优先级不限:任务优先级分配没有限制,多任务可同一优先级。3、抢占式:高优先级任务抢占低优先级的任务。

2023-01-21 11:16:32 952

原创 STM32笔记_9(USART—串口通讯)

串口通讯 (Serial Communication) 是一种设备间非常常用的串行通讯方式,通常用来调试。通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter) 是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART(UniversalAsynchronous Receiver and Transmitter),它是在 USART 基础上。

2023-01-18 23:10:43 1088

原创 STM32笔记_8(系统滴答定时器“delay延时函数“)

SysTick—系统定时器是属于CM3 内核中的一个外设内嵌在 NVIC 中。系统定时器是一个24bit的向下递减的计数器,计数器每计数一次的时间为1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 72M。当重装载数值寄存器的值递减到 0的时候,系统定时器就产生一次中断,以此循环往复。因为 SysTick 是属于 CM3 内核的外设,所以所有基于 CM3 内核的单片机都具有这个系统定时器,使得软件在 CM3 单片机中可以很容易的移植。

2023-01-15 15:03:59 387

原创 STM32笔记_7(EXTI—外部中断)

EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的20 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。

2023-01-14 21:46:02 840

原创 STM32笔记_6(配置系统时钟“时钟树“)

设置系统时钟 SYSCLK、设置 AHB 分频因子( HCLK )、设置 APB2 分频因子(PCLK2 )、设置 APB1 分频因子(PCLK1 )、设置各个外设的分频因子。控制AHB、 APB2 和 APB1这三条总线时钟的开启、控制每个外设的时钟的开启。对于这四个时钟的配置一般是:。

2023-01-13 14:33:25 2128

原创 STM32笔记_5(STM32固件库解析)

"<>:在系统的安装目录找。:先在当前的自己新建的工程目录下找,找不到就去系统安装的目录找。

2023-01-08 22:09:19 179

原创 STM32笔记_4(GPIO功能简介)

GPIO 引脚经过内部的上、下拉电阻,可以配置成上/下拉输入,然后再连接到施密特触发器,信号经过触发器后,模拟信号转化为 0、 1 的数字信号,然后存储在“输入数据寄存器 GPIOx_IDR”中,通过读取该寄存器就可以了解 GPIO 引脚的电平状态。推挽输出的低电平为 0 伏,高电平为 3.3 伏。引脚的两个保护二级管可以防止引脚外部过高或过低的电压输入,当引脚电压高于 VDD 时,上方的二极管导通,当引脚电压低于 VSS 时,下方的二极管导通。输出数据寄存器的值就可以修改 GPIO 引脚的输出电平。

2023-01-06 19:43:23 208

原创 STM32笔记_3(STM32模仿51的寄存器形式点灯)

STM32笔记_3

2023-01-05 20:33:20 201

原创 STM32笔记_2(STM32芯片架构,存储器和寄存器映射)

STM32笔记_2

2023-01-04 19:45:47 1123

原创 STM32笔记_1(了解STM32)

STM32学习

2023-01-03 18:25:38 247

原创 51单片机UART串口通信( 电脑通过串口控制LED)

#include <REGX52.H>//窜口初始化void UART_Init() //4800bps@12.000MHz{ //配置窜口相关寄存器 PCON = 0x80; //是波特率加倍 SCON = 0x50; //配置窜口工作方式(8位UART,波特率可变) //配置定时器模式 TMOD = 0x20; TMOD &= 0x0F; //高4位置零,且保证第四位不变(高四位为定时器1,低四位为定时器0) TMOD |= 0...

2022-05-01 16:39:24 1117

原创 通过栈实现十进制转化为二进制或八进制

#include<stdio.h>typedef struct{ int data[50];//进制设为整形 int top;}seqstack;//栈的初始化void initstack(seqstack* s){ s->top = -1;}//判断栈是否为空int empty(seqstack* s){ if (s->top == -1) return 1; else return ...

2022-03-29 17:32:27 1577

原创 指针运算中的优先级

/*指针运算中的优先级*/#include<stdio.h>int a[2] = { 100, 200};int b[2] = { 300, 400};int main(void){ int *p1, *p2, *p3; p1 = p2 =a; p3 = b; printf(" *p1 = %d, *p2 = %d, *p3 = %d\n", *p1, *p2, *p3); printf(" *p1++ = %d, *++p2 = %...

2022-02-03 14:56:33 633

原创 数据结构中的顺序表

#include<stdio.h>#include<stdlib.h>#include<malloc.h>//包含exit函数//定义该表的结构体typedef struct ARR{ int* p0;//描述该表的第一个元素 int len;//该表的长度 int cnt;//该表q的当前位置}array;//对表进行初始化void init_arr(array* p, int length){ p->p0 =...

2022-01-24 11:30:27 443

在linux下移植好的boa服务器

在linux下移植好的boa服务器

2024-10-13

山外多功能调试助手资源包

调试更快捷,更方便

2022-11-02

万年历.cpp

万年历.cpp

2021-06-03

4-对角线问题.c

4-对角线问题.c

2021-05-20

空空如也

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

TA关注的人

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