自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 CPU、MCU、MPU、SOC、SOCPC、概念解释之在嵌入式领域常听到的名词含义

它本质上仍是一个完整的单片机,有处理器,有各种接口,所有的开发都是基于已经存在的系统架构,应用者要做的就是开发软件程序和加外部设备。SoC(System on Chip),整体的一个电路系统,完成一个具体功能的东西,指的是片上系统,MCU只是芯片级的芯片,而SoC是系统级的芯片,它既MCU那样有内置RAM、ROM同时又像MPU那样强大,不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(以Linux OS为主)(将就认为是MCU集成化与MPU强处理力各优点二合一)。

2023-08-24 23:54:00 2470

原创 嵌入式行业找工作和在校期间应该做的事有哪些?学习路线、未来规划、35岁危机?

1、做技术,没有掌握到行业的核心,技术和前几年并没长进,行业知识不够。2、没混到管理层。

2023-07-22 21:17:23 315

原创 进程与线程的区别,特点比较区别与联系

进程:进程是程序执行的实例,包括程序计数器和寄存器和变量的当前值进程依赖于程序存在线程:每个进程都拥有自己的数据段、代码段和堆栈的,这就造成了进程在创建、切换、撤销操作时,需要较大的系统开销。为了减小系统开销,从进程中演化出了线程。

2023-06-27 13:56:26 289

原创 进程的概念、特点详细介绍及Linux系统中进程控制

对于操作系统中,程序时存放存储介质上的一个可执行文件,进程时程序执行实例,包括程序计数器,寄存器和变量的当前值。程序是静态的,进程是动态的简单来说:程序是一些指令的有序集合,而进程是程序执行的过程。进程的状态是变化的,即创建,调度,消亡。

2023-06-27 10:21:35 331

原创 FreeRTOS系统学习-内核篇.01-数据结构---列表与列表项定义详解-链表节点插入实验

同样,链表也类似,链表的节点本身不能存储太多东西,或者说链表的节点本来就不是用来存储大量数据的,但是节点跟晾衣架的钩子一样,可以挂很多数据。要通过链表存储的数据内嵌一个节点即可,这些要存储的数据通过这个内嵌的节点即可挂接到链表中,就好像晾衣架的钩子一样,把衣服挂接到晾衣架中。列表和列表项是直接从 FreeRTOS 源码的注释中的 list 和 list item 翻译过来的,其实就是对应我们 C 语言当中的链表和节点,在后续的讲解中,我们说的链表就是列表,节点就是列表项。太多了,不过多介绍。

2023-04-28 16:16:01 1713 1

原创 FreeRTOS系统学习第一步:新建 FreeRTOS 工程—软件仿真

在开始写 FreeRTOS 内核之前,我们先新建一个 FreeRTOS 的工程,Device 选择Cortex-M3(Cortex-M4 或 Cortex-M7)内核的处理器,调试方式选择软件仿真,为什么选择软件仿真呢?因为我们在学习FreeRTOS内核过程中呢,有些代码逻辑是没有实验现象的,我们通过软件仿真来观察过程现象,通过Debug方式,借助逻辑分析仪,查看一些实验现象。

2023-04-27 11:15:44 1416

原创 单片机编程中的裸机编程和多任务系统FreeRTOS系统详解,以及怎么学习FreeRTOS,看哪家的教程?(合集)

野火的FreeRTOS倡导的是从0-1先从内核底层学起,我尝试了一段时间,发现到中期,根本看不懂,列表和任务的定义之类的函数,又看了原子的教程,但原子的教程大家都懂,不过我看过他家的 HAL库 和这个RTOS抛开他们的代码不说,其他的还是可以的,方式可以,更易懂。在顺序执行后台程序的时候,如果有中断来临,那么中断会打断后台程序的正常执行流,转而去执行中断服务程序,在中断服务程序里面标记事件,如果事件要处理的事情很简短,则可在中断服务程序里面处理,如果事件要处理的事情比较多,则返回到后台程序里面处理。

2023-04-23 16:08:30 1655 1

原创 STM32HAL库USART外设配置流程及库函数讲解

一说到串口通信,及必须说一下aRS-232/485协议。232协议标准物理接口就是我们常用的DB9串口线RS-232电平:逻辑1:-15~-3逻辑0: +3~+15COMS电平:逻辑1:3.3逻辑0: 0vTTL电平逻辑1:5v逻辑0:0v。

2023-04-20 15:41:22 892

原创 STM32HAL库中外设初始化MSP回调机制及中断回调机制详解

我们开始学习HAL库的过程中,一定会发现与固件库开发中外设初始化流程和中断处理机制不相同,在这里将为大家解答一下心中的译文。

2023-04-19 14:20:00 1140

原创 SMT32HAL库开发第一课-外设GPIO初始化流程

本文章主要介绍一下HAL库中GPIO外设驱动文件中官方提供的函数的功能和用法。GPIO复用 IO端口的输入输出是由其他非GPIO外设控制的。GPIO支持什么复用功能去查看数据手册!

2023-04-19 14:15:06 305

原创 STM32外设之TIM定时器使用及输出比较模式PWM生成,PWM频率和占空比计算,文末有固件库TIM驱动文件的函数讲解

必须设置TIMx_CCMRx寄存器OCxPE位以使能相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的ARPE位,(在向上计数或中心对称模式中)使能自动重装载的预装载寄存器。预分频器可以将计数器的时钟频率按1到65536之间的任意值分频。根据不同型号的单片机,挂载的定时器个数不同,比如C8T6只有TIM1~4,更高级的控制器有更多的定时器。

2023-03-26 13:15:00 3955 1

原创 STM32输出PWM波控制电机转速,红外循迹避障智能车+L298N的详细使用手册、接线方法及工作原理,有代码

对于L298N的讲解此网站上有很多 我只能说讲的好的每一个,我初次找L298N的资料时,真的被搞的迷迷糊糊,怎么说的都有,服了。本设计的完整的系统主要包括STM32单片机最小系统、L298n电机驱动,超声波 ,舵机 ,红外模块等。供电方式 :12V供电,左下角三个接口,最左边为12V输入,中间为GND引脚,右边是5v输出(要将上面跳线帽连接)(电机以最快速度转动)---------------------------------没办法调整左右轮速度。IN1,IN2,IN3,IN4按章上面的接法控制方向。

2023-03-26 08:41:48 3922 2

原创 STM32使用ST-Link下载器下载正确操作方式以及ST-LINK下载失败“target dll has been cancelled”等错误

注意使用串口下载要使用STM32从系统存储器启动方式即:BOOT0 引脚置1 ,BOOT1引脚置0,从系统存储器方式启动,下载代码,是利用出厂预置在芯片内部的Bootloader,将代码下载到FLASH中启动。ST-Link是一款支持STM32/8烧录的工具,有两种烧录接口:JTAG接口和SWD接口,现在工程师们都是使用SWD烧录,古老的JTAG方式已被淘汰。我们使用C8T6开发时,往板子里面下载程序,使用ISP串口比较繁琐,开发中不推荐,学生没有仿真器时可以使用ISP。下载工具,连接开发板,将芯片清除。

2023-03-04 15:17:40 6225

原创 USB转串口芯片CH340系列及CH340模块使用方法(CH340驱动,接线,串口下载详细介绍)

我们为什么要用到CH340驱动呢?CH340驱动就是USB转串口的驱动的一种,因为我们现在的电脑上,已经不存在串口,所以我们一般使用USB转串口芯片,目的只有一个,把电脑的USB口映射为串口用。常用的USB转串口芯片有CH340、CP2102、PL2303、FT232等。芯片是CH340的均可以使用。安装CH340驱动之后,我们使用的开发板子(单片机)连接串口就可以正常发挥其功能了。电脑usb电平转为TTL电平。

2023-02-15 22:05:58 70203 2

原创 嵌入式软件开发-最基本的GPIO口详细配置过程及原理--学习单片机的基石

我们在学习单片机的过程中,每次学习一个新的外设,我们一定要去弄懂这个外设的概念,要彻底明白这个外设是用来干嘛的,这样也方便我们去理解记忆外设的配置流程,对于概念,字面意思我们要对适当的去记忆,不然别人问起,我们自己知道但不会表达,也不行哈,自己去适当的记忆也有利于我们对单片机的体系结构有个整体的把握,掌控全局,逐个击破。也就是说,一个引脚可以有很多作用,但是默认为IO口,如果想使用一个 GPIO内置外设的功能引脚,就需要GPIO的复用,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。

2022-11-26 11:16:22 2619

原创 嵌入式开发-常用通讯协议---SPI协议详细介绍—读写串行 FLASH

SPI协议的概念SPI物理层SPI协议层1.SPI通讯时序2. 通讯的起始和停止信号3. 数据有效性4. CPOL/CPHA 及通讯模式STM32 的 SPI 特性及架构STM32 的 SPI外设简介STM32 的 SPI架构剖析1. 通讯引脚2. 时钟控制逻辑3. 数据控制逻辑4. 整体控制逻辑通讯过程SPI 初始化结构体详解SPI—读写串行 FLASH 实验1. 编程要点2. 代码分析STM32 的 SPI 外设可用作通讯的主机及从机,

2022-11-18 16:25:45 351

原创 常用存储器详细介绍(ROM、RAM、FLASH等)

另外,FLASH 的擦除次数都是有限的(现在普遍是 10 万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。而由于 NAND 的数据和地址线共用,只能按“块”来读写数据,假如 NAND 上存储了代码指令,CPU 给 NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。MASK(掩膜) ROM 就是正宗的“Read Only Memory”,存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改,其主要优势是大批量生产时成本低。后,它的内容也不可再修改。

2022-11-18 15:26:53 1472

原创 嵌入式软件开发必看--常用通讯协议---IIC协议详细介绍-从物理层协议层到代码配置

起始信号产生后,所有从机就开始等待主机紧接下来广播的从机地址信号在 I2C 总线上,每个设备的地址都是唯一的,当主机广播的地址与某个设备地址相同时,这个设备就被选中了,没被选中的设备将会忽略之后的数据信号。根据 I2C 协议,这个从机地址可以是 7 位或 10 位。在地址位之后,是传输方向的选择位,该位为 0 时,表示后面的数据传输方向是由主机传输至从机,即主机向从机写数据。该位为 1 时,则相反,即主机由从机读数据。

2022-11-12 19:30:49 634

原创 STM32的定时器概念-从基本到高级定时器由底层到配置使用-基本和高级TIM使用的初始化-用通用TIM输出四路PWM波

宏定义都知道写在哪个文件内吧就不多说了#define BASIC_TIM6 // 如果使用 TIM7,注释掉这个宏即可 #ifdef BASIC_TIM6 // 使用基本定时器 TIM6 #define BASIC_TIM TIM6 #define BASIC_TIM_APBxClock_FUN RCC_APB1PeriphClockCmd。

2022-11-05 14:05:04 2499

原创 STM32的中断概念-从EXTI到NVIC由外到内一文搞清中断概念-EXTI的初始化和NVIC的初始化-按键中断实验

NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。但是各个芯片厂商在设计芯片的时候会对 Cortex-M3 内核里面的 NVIC 进行裁剪,把不需要的部分去掉,所以说 STM32 的 NVIC 是 Cortex-M3 的 NVIC 的一个子集。EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿。

2022-11-04 20:42:09 1522

原创 数据库的基本函数以及约束和多表查询、联合查询、事务、并发事务、隔离机制及常见问题(数据库日常开发二)

关系:一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率。笛卡尔积:两个集合A集合和B集合的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)原子性(Atomicity):事务是不可分割的最小操作但愿,要么全部成功,要么全部失败。持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。实现:在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)实现:在多的一方建立外键,指向一的一方的主键。

2022-10-31 21:01:02 112

原创 数据库的基本概念以及Mysql80服务启动与基本SQL语句的使用

1.数据(data)是数据库中存储的基本对象,数据不单纯指数字,广义的理解认为数据的种类很多,例如文本(text)、图形(graph)2.数据库DataBase (DB),顾名思义,是存放数据的仓库。严格来讲,数据库是长期存放在计算机内、有组织的、可共享的大量数据的集合3.数据库管理系统 DateBase Management System(DBMS),是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。

2022-10-29 17:37:04 1514

原创 嵌入式软件开发面试题总结四

嵌入式面试题

2022-10-25 16:52:33 940

原创 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问

ESP8266 支持 softAP 模式,station 模式softAP + station 共存模式三种。利用 ESP8266 可以实现十分灵活的组网方式和网络拓扑。指令集分为:基础 AT 命令、Wifi 功能 AT 命令、TCP/IP 工具箱 AT 命令等。注意:1)不是每条 AT 指令都具备上述 4 类命令。2)后文指令中[ ]内数据为缺省值,不必填写或可能不显示。3)波特率 115200。4)参数为字符串的,需要加上双引号。

2022-10-19 22:08:53 15165 3

原创 嵌入式软件开发面试题总结三.

嵌入式开发工程师

2022-10-12 16:20:57 426

原创 嵌入式软件开发面试题总结二#面试宝典#

嵌入式面试题总结第二篇。。

2022-10-04 21:21:13 595

原创 嵌入式软件开发就业面试题。2022最新,最全总结。

总结了网上大多见过的没见过的面试题,倾向嵌入式软件开发,与其他不同,更符合嵌入式岗位。

2022-10-02 10:43:47 6018 2

原创 初次使用Git 、Git的安装与Git连接华为云的步骤。纯享版

新手第一次使用GIt,用最简单的方式教会大家初次配置Git,放心使用

2022-09-24 16:10:29 2295

原创 Linux实验----TCP程序与UDP程序 实验六

本次实验考察socket编程,本章内容很重要也很繁琐,完成本实验要掌握创建套接字,服务器和客户端的区别,作为服务器要先bind函数绑定sockfd与本地协议地址,用linsten函数监听,accept函数从已连接的队列中取出链接。客户端要知道服务器的端口及ip地址,用connect函数与服务器链接,连接成功后用send函数发送数据。服务器接收数据则用recv函数,完成后用close关闭套接字即可。每个步骤都至关重要 ,要完成每个步骤的学习才可很好的完成本实验。

2022-09-05 15:15:08 1241

原创 Linux实验---- 基于消息队列和共享内存的进程间通信 实验五

1必须掌握进程的创建,会创建两个子进程;2要了解消息队列的创建机制,先定义key值,通过ftok获取键值,本实验直接给出了key,然后创建消息队列,发送接收消息等一些列操作;3同样要知道共享内存的工作机制,创建一块共享内存区,用shmat函数将共享内存段映射到调用进程的数据段中,想共享内存里写入读出数据;4要有明确的逻辑思路,先创建两个进程,分别在进程中进行操作;总结为本人做实验时随便写的,基本的废话而已,海涵!

2022-09-01 17:48:03 1697

原创 五分钟搞懂C++结构体、联合体、枚举的用法和区别

结构体、联合体、枚举一、 结构体的声明1.结构的基础知识2.结构的声明3.结构成员的类型4.结构体变量的定义和初始化二、结构体成员的访问三、 结构体传参二、联合体枚举类型一、 基本概念二、枚举类型的使用1、定义枚举类型2、定义枚举类型的变量3、调用枚举类型变量4、如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值5、枚举值可以用来作判断6、一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值三、枚举案例总结一、 结构体的声明1.结构的基础知识结构是一些值的集合,这些值称为成员变量。结构

2022-05-15 16:26:19 982

原创 Linux实验 ---- 生产者和消费者问题 实验四

实验目的“生产者消费者”问题是一个著名的同时性编程问题的集合。通过编写经典的“生产者消费者”问题的实验,读者可以进一步熟悉Linux 中多线程编程,并且掌握用信号量处理线程间的同步互斥问题。实验内容“生产者消费者”问题描述如下。有一个有限缓冲区和两个线程:生产者和消费者。他们分别把产品放入缓冲区和从缓冲区中拿走产品。当一个生产者在缓冲区满时必须等待,当一个消费者在缓冲区空时也必须等待。它们之间的关系如下图所示:这里要求用有名管道来模拟有限缓冲区,用信号量来解决生产者消费者问题中的同步和互斥问题。

2022-04-05 15:54:28 2615 1

原创 Linux实验----进程管理 实验三

进程管理实验一 实验题目:二 实验目的三 实验内容四 实验步骤五、实验结果代码实现六 总结一 实验题目:进程管理实验二 实验目的加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质掌握进程管理、进程通信三 实验内容1、进程创建2、进程控制3、进程的管道通信4、父进程从终端读取要执行的命令,并交给子进程执行。父进程等待子进程结束,并打印子进程的返回值。四 实验步骤1、进程创建编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个

2022-04-03 16:53:16 5655 1

原创 Linux实验---多文件编程Makefile实验二

多文件编程Makefile实验指导书一 实验题目:二 实验目的三 实验内容四 实验步骤五 实验结果六、总结一 实验题目:多文件编程Makefile二 实验目的(1) 熟悉Linux开发环境(2) 学习嵌入式开发的基本过程(3) 了解Makefile的基本内容(4) 通过对包含多文件的Makefile的编写,熟悉各种形式的Makefile,并且进一步加深对Makefile中用户自定义变量、自动变量及预定义变量的理解。三 实验内容1、完成一个简单程序的编译过程2、实现编写多文件编程的make

2022-04-02 22:10:24 4963

原创 keil5的安装详解(看完必会,不会你打我)

如何安装KEIL5本内容所涉及的软件只供教学使用,不得用于商业用途。个人或公司因商业用途导致的法律责任,后果自负。温馨提示1.安装路径不能带中文,必须是英文路径2.安装目录不能跟51的KEIL或者KEIL4冲突,三者目录必须分开3. KEIL5的安装比起KEIL4多了一个步骤,必须添加MCU库,不然没法使用。4.如果使用的时候出现莫名其妙的错误,先百度查找解决方法,莫乱阵脚。获取KEIL5安装包要想获得KEIL5的安装包,在百度里面搜索“KEIL5 下载”即可找到很多网友提供的下载文件,或者

2022-04-01 19:19:27 13926 4

原创 关于第一次使用keil5软件注释为什么变成了?(保姆级教程)

很多小白打开keil5后复制进去老师的代码,发现自己的内容注释都变成了?,不要慌张,博主手把手教你。安装的keil默认使用的编码并不是GB2312的,这会导致用户在添加注释时,双斜杠//后面的内容变成??,可以通过配置默认字符编码解决这个问题。打开keil,在左上角的Edit选项卡中选中Configuration选项,第一个名称为Editor的tab页面中,将Encoding更改为Chinese GB2312并保存修改即可。第一步打开软件keil5,并找到菜单栏上edit编辑选项卡第二步

2022-03-29 16:28:44 2519

原创 Linux学习实验-----库文件的创建与时使用 实验一

库文件的创建与时使用实验一 实验题目:二 实验目的三 实验内容1、概述2、编写最简单的静态库文件3、制作库文件4、使用库文件5、动态库的编写6、编译生成动态库 ,库文件名以lib开头,以.so 结尾。7、动态库的隐式调用四 实验步骤1、概述⑴ 编写函数代码⑵ 编译生成各目标文件⑶ 用ar文件对目标文件归档,生成静态库文件。⑴ 在gcc 的-I参数后加上静态库头文件的路径。⑵ 在gcc 的-L参数后加上库文件所在目录⑶ 在gcc 的-l参数后加上库文件名,但是要去掉lib和.a扩展名。2、编写最简单的静态库文

2022-03-27 19:15:38 1437

原创 Linux下关于makefile命令操作练习题(5)

mekefile练习题makefile使用方法Make主要解决两个问题:make命令格式1.makefile语法规则2.编写课件中-例2稍复杂的makefile实例,执行并截图3.编写课件中-例2_3使用预定义变量使makefile更加通用,执行并截图操作结果makefile使用方法Make主要解决两个问题:一、大量代码的关系维护➢大项目中源代码比较多,手工维护、编译时间长而且编译命令复杂,难以记忆及维护把代码维护命令及编译命令写在makefile文件中,然后再用make. I具解析此文件自动执行相

2022-03-27 15:01:20 1788

原创 Linux系统中消息队列,共享内存、信号和线程的基本操作使用方法

第十一章 消息队列10.1消息队列定义消息队列是消息的链表,存放在内存中,由内核维护10.2 消息队列特点消息队列的特点:消息队列允许一个或多 个进程向它写入或者读取消息,并且每条消息都有类型。消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,编程时可以按消息的类型读取。与无名管道、有名管道一样,从消息队列中读出消息,消息队列中数据会被删除。同样消息队列中的消息是有格式的。只有内核重启或人工删除时,该消息才会被删除,若不人工删除消息队列,消息队列会一直存在于内存中消息队列标识

2022-03-25 19:22:05 1545

原创 Linux中gcc命令编译选项、动静态、gdb调试练习题练习题(4)

Linux中gcc命令编译选项练习题题目gcc命令的常用选项:-I、-c、-o 、-D、-g、-Wall、-O1)列出这些常用选项的作用2)使用这些选项编译程序,并截图2.分析静态链接库与动态链接库各自的优缺点3.静态链接库与动态链接库的创建方法和使用方法4.gdb调试程序截图(练习:列出程序清单、运行程序、设置断点、清楚断点、显示程序变量值、单步执行)...

2022-03-25 11:40:34 878

TF(内存卡)修复工具

为内存卡修复工具,有时我们遇到内存卡不能正常使用的情况可以用此软件进行修复,只要不是硬伤都能修复。供大家使用。

2023-02-19

QT软件的安装与配置全过程

说明: Qt 自从5.15版本开始,对非商业版本,也就是开源版本,不提供已经制作好的离线exe安装包,自这个版本开始你只有两种选择: 1、编译源码 例如qt-everywhere-src-5.15.2.zip 编译步骤繁琐,需严格遵循步骤花费数小时不等的时间; 2、在线联网安装:清华源或者其它方法代理直连。

2022-03-08

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

TA关注的人

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