自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (5)
  • 收藏
  • 关注

原创 ucosiii内核源码解读--- 任务相关基础

一、任务状态任务在内核中有五种状态,对应运行状态、等待状态、就绪状态、睡眠状态、中断状态。需要把任务交给操作系统的函数为OSTaskCreate()或OSTaskCreateExt()。任务一旦创建就进入就绪状态,任务可以在多任务运行开始之前建立,也可以被一个运行中的务动态建立。如果一个任务是被另一个任务建立的,而这个任务的优先级高于建立它的那个任务,则这个刚刚建立的任务将立即得到CPU的控制权。一个任务可以通过调用OSTaskDel()返回到睡眠态,或通过调用该函数让另一个任务进入睡眠...

2022-03-03 20:59:01 533

原创 linux内核进程的创建与初始化

了解底层内核如何创建一个进程,如何初始化进程。

2022-03-03 18:07:03 1291

原创 linux系统的进程运转方式

一、系统时间:(jiffies 系统滴答)CPU内部有一个RTC,会在上电的时候调用mktime函数计算出1970年1.1日0时开始到当前开机点所过的秒数,给mktime函数传来的时间结构体的赋值是由初始化时从RTC中读出的参数,转化为时间存入全局变量中,并且会为jiffies所用。jiffies是一个系统的时钟滴答,一个系统滴答是10ms。每10ms发生一个定时器的中断,中断首先会将jiffies自加一,之后获取任务的特权级,将其作为参数调用do_timer函数。### int32 -

2022-03-02 21:30:30 614

原创 ucosiii内核源码解析---os_core.c

os_core.c是OS的核心函数,掌握其内容对我们的学习很有帮助。

2022-03-02 14:50:14 2069

原创 linux内核中断体系结构

linux内核asm.s文件中硬件中断处理过程

2022-03-01 15:06:28 839

原创 linux操作系统体系结构与功能流程

linux操作系统的结构与各模块之间的关系

2022-03-01 12:56:29 1082

原创 ucos源码分析--基础概念

ucosiii源码分析基础概念篇。

2022-02-28 21:47:26 1159

原创 new与malloc的区别、struct与class的区别

C++中new与malloc的区别、struct与class的区别

2021-11-18 15:25:48 938

原创 进程、线程等操作系统基础知识

操作系统中进程、线程相关基础知识。基本一文所有知识点全部搞定,耐心看,收获一定会很大。

2021-11-18 01:15:22 792

原创 判断链表是否有环,并判断环的入口以及环的长度

一、判断链表是否带环判断链表是否带了环有很多种方法,最简单且高效的一种就是双指针,双指针在算法中很重要,只需要设置一快、一慢的指针,判断他两个是否会相遇就可以得出链表是否带环。int judge(node *head){ if(!head&&!head->next) { printf("链表为空!"); } node *p,*q; p=head->next; q=head->next; while(q&&q->next)

2021-11-17 13:48:50 503

原创 两种单链表的逆置详解

这里链表的逆置是个有点难理解的问题,但是学会了后就很简单,下面我来记录一下我在学习链表逆置问题的收获。一、头插逆置void reverse(node*head){ node*p; p=head->next; //需要把头节点的下一个置为零 head->next=NULL; while(p) { q=p; p=p->next; q->next=head->...

2021-11-17 13:14:41 469

原创 单片机通信——spi、iic、uart

uart,iic,spi原理即对比 由图可见,数据在总线和uart之间还是并行传输的,但是两个设备之间的uart之间就采取了单线的传输,在传输的前,还会自动的添加起始位、奇偶校验位、停止位。具体的传输过程如下图...

2021-11-16 21:50:36 3560

原创 链表必会知识--适合快速复习

链表的四种创建方法,链表的删除、插入、求中间值、测长等操作。

2021-11-16 20:13:24 997 1

原创 stm32+TB6612驱动直流电机

因为单片机的不可以直接的驱动电机,所以需要在他们之间加上一个电机的驱动模块,之前的文章里面用过L298N电机驱动模块,现在再给大家推荐一个新的电机驱动模块,他比L298N好用许多,而且占用体积小,发热也少。TB6612可以一次驱动两个直流电机,输出PWM也很简单,下面就是通过实验对TB6612电机进行介绍。一、TB6612电机驱动模块 先介绍一下TB6612电机驱动模块的引脚功能,VM:最大接15V电源,我一般使用12V直流电源供电。VCC采用3.3V或者5V供电。...

2021-11-12 13:23:05 24784 8

原创 一文搞懂Linux下的文件的标准输入、标准输出、输出重定向问题

Linux下一切皆文件,所谓的终端那个黑框也可以视为一个文件,在Linux驱动开发中各个设备也可以被认为是文件操作,所以文件的操作很重要。我们通常将键盘叫做标准输入设备、将显示器叫做标准输出设备,下面由几个例子来解释文件的标准输入、标准输出、输出重定向。一、命令行下的标准输入、标准输出、输出重定向 在命令行中可以使用echo命令将想输的字符串输出在终端上,结果如下:lzn@ubuntu:~$ echo abcdefdgabcdefdg 这就是...

2021-11-11 22:19:15 5801 1

原创 2021年数学建模竞赛省赛获奖作品

这是我们组的的所有资料,关注私聊可以免费获取,仅供参考。

2021-11-10 21:38:12 1911

原创 8085编程模型-计算机工作过程及原理

一、冯诺依曼思想 1、由存储器、运算器、控制器、输入输出设备组成。 2、数据和程序以二进制的形式存放在内存中,存放的位置由地址指定,地址码为二进制。 3、控制器是根据存放在存储器中的指令序列,即程序来工作的,并由一个程序计数器控制指令的执行,控制器具有判断能力,能以计算结果为基础选择不同的工作流程。二、计算机的工作过程1、指令和数据放入内存;2、数据放入CPU;3、CPU内数据处理;...

2021-11-04 00:53:19 1018

原创 计算结构体的大小-数据对齐、提高读取性能与可移植性,利用空间换时间

大家学习C语言的时候基本都遇到过求结构体大小的问题吧,刚刚开始肯定都想着直接把结构体的各个因子相加起来就好了,但是这样确实是错误的,虽然有时候结果是对的。想得到结构体的大小可以使用sizeof()这个函数,当然也可以自己进行计算,下面就分享一下我的方法。一、数据对齐 首先我们先了解一下什么是数据对齐,在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在...

2021-11-02 03:28:32 205

原创 C语言关键字-const static volatile

C语言里面有一些关键字在嵌入式开发里面很重要,例如static、const、volatile。下面就说说这几个关键字常用方式与面试时面试官经常提问的问题。一、static在 C 语言中,static 关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用 static 关键字修饰变量时,我们称此变量为静态变量。静态变量的存储方式与全局变量一样,都是静态存储方式。在 C 语言中,关键字 static 有三个明显的作用:1、在函数体内,一个被声明为静态的...

2021-11-02 02:51:08 327 1

原创 Linux驱动开发环境配置

正点原子在环境配置的方面推荐了很多软件都有些多余了,其实只下载了如下几个软件就可以开始Linux驱动开发的学习了。一、mobaxterm 这个软件可以代替正点原子推荐的FileZilla,支持ssh,ftp等。如下图所示:使用起来很方便,也支持文件传输,关键信息高亮显示,还支持串口调试Serial。二、交叉编译工具的安装 这里就推荐正点原子的gcc-linaro-4.9.4-2017.01-x86_64_arm-linux...

2021-11-01 00:05:42 317

原创 I.MX裸机点灯过程

刚开始学习I.MX6Ull的裸机开发,这里来记录一下今天的学习,本文章适合想要开始学习Linux驱动开发的朋友,内容简单,利用的是正点原子的视频与开发板,只是讲了开发步骤,对细节感兴趣的也可以去看看正点原子的视频。一、ARM汇编基础 与STM32单片机不同,stm32开发板的启动文件中已经将SP指针初始化、DDR初始化。正点原子的Linux开发板并没有初始化这些,所以C语言环境还没准备好,不能直接运行C语言代码,我们利用汇编语言将C语言环境搭建好后就可以执行C语言代码了...

2021-10-31 23:31:34 252

原创 无基础也可以了解,NVIC中断优先级分组

STM32可以对中断进行分组,可以分为5组。

2021-06-02 01:02:16 4154 2

原创 隔壁老王看了都会的文章:STM32串口实验——单片机与上位机交互信息

今天介绍USART串口通信的使用,目的在于会用串口传送和接收数据。什么是串行通信我们对通信的字面意思理解就是信息的传输与交换。通信按照基本类型可以分为并行通信和串行通信。并行通信时数据的各个位同时传送,可以实现字节为单位通信,但是因为通信线多占用资源多,成本高。而串口通信传送数据是一帧一帧发送,传送距离相对较远,占用资源少,成本低,但是串行通信传输速度相对于并行通信传输速度较慢。单片机上大多使用串行通信。 串行通信是单片机最常用的一种通信技术,通常用于单片机和电脑之间以及...

2021-06-01 15:37:30 3220

原创 浅谈STM32的GPIO复用和重映射

端口复用STM32的端口复用是非常简单的STM32板有许多的外设,比如ADC,USART,红外模块,温度传感器的插口等。为了让单片机外部引脚达到更高的利用,所以

2021-05-30 14:26:40 1994 3

原创 直流电机+L298N电机驱动模块

本次来写一下关于驱动直流电机的知识,今天目的是驱动它,下次写使用PWM精准的对直流电机进行控速。下面是我使用的直流电机图:

2021-05-29 14:41:09 19621 26

原创 光敏,红外,人体红外检测模块的模拟输出(ADC)实验——入门

前面给大家介绍了传感器的开关输出的使用,今天给大家介绍一下常见传感器的模拟输出的用法,用到了STM32的ADC(模数转换)模块,USART串口通信模块。代码就是正点原子的ADC实验的代码。

2021-05-28 15:32:21 7702 24

原创 STM32与人体红外感应模块的简单使用——入门级

工作原理人体有恒定的温度,可以发出10UM的红外波,而人体红外感应模块就可以探测出这些红外波,从而产生电平转换。由此人们可以使用人体红外检测模块来检测是否有人。模块工作环境工作电压:5V至20V 电平输出:高3.3V,低0V 延时时间:0.3秒~18秒(可以自己进行调节) 触发方式:L不可重复,H可重复,默认值为H 测量距离:3米~8米触发方式L不可重复,H可重复。可跳线选择,默认为H。不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。重复..

2021-05-27 01:11:25 39015 47

原创 STM32与4脚光敏电阻的简单使用——初学

这是我第一次写CSDN,排版可能有许多问题,描述的可能也有不清楚的地方,有问题的小伙伴可以私聊我,一起学习共同进步。 今天发现了一个很有意思的传感器——光敏传感器,它可以判断光线的亮暗,当然亮暗是个相对的说法,它可以自己设定阈值,今天来聊聊他最简单的使用。  它具有四个引脚,VCC可以连接STM32板的3.3V或者5.0V电压接口。GND可以连接STM32单片机的GND。DO口是开关输出,可以输出1和0,代表高低电平。AO口是模拟量输出,可以利用STM32的ADC...

2021-05-26 01:25:32 25193 24

正点原子stm32spi配置代码

学习使用

2023-06-25

stm32c8t+正点原子wifi+MAX30102+LD3320+onenet上云,帮学长做的一个毕设。加qq可以白嫖。

加qq2947993454

2022-05-08

数学建模2021B题相关资料

数学建模2021B题相关资料

2022-03-17

数学建模2021年B题代码

数学建模2021年B题代码

2022-03-17

2021年数学建模B题省二作品

2021年数学建模B题省二作品

2022-03-17

最早linux内核源码0.11版本

最早linux内核源码0.11版本

2022-03-01

空空如也

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

TA关注的人

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