- 博客(68)
- 资源 (5)
- 收藏
- 关注
原创 ucosiii内核源码解读--- 任务相关基础
一、任务状态任务在内核中有五种状态,对应运行状态、等待状态、就绪状态、睡眠状态、中断状态。需要把任务交给操作系统的函数为OSTaskCreate()或OSTaskCreateExt()。任务一旦创建就进入就绪状态,任务可以在多任务运行开始之前建立,也可以被一个运行中的务动态建立。如果一个任务是被另一个任务建立的,而这个任务的优先级高于建立它的那个任务,则这个刚刚建立的任务将立即得到CPU的控制权。一个任务可以通过调用OSTaskDel()返回到睡眠态,或通过调用该函数让另一个任务进入睡眠...
2022-03-03 20:59:01
533
原创 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
原创 判断链表是否有环,并判断环的入口以及环的长度
一、判断链表是否带环判断链表是否带了环有很多种方法,最简单且高效的一种就是双指针,双指针在算法中很重要,只需要设置一快、一慢的指针,判断他两个是否会相遇就可以得出链表是否带环。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
原创 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
原创 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
原创 隔壁老王看了都会的文章: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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅