自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 单片机第五季-第八课:STM32CubeMx和FreeRTOS

RTOS简介:实时操作系统,本用于追求实时性的嵌入式系统,典型:ucos/uclinux/vxworks;特点:中断响应快、一般可嵌套中断、使用实地址、多任务;(实地址:)近年来趋势:由RTOS向IoTOS转型,典型:FreeRTOS/LiteOS/rt-thread;(IoTOS:主要与物联网相关,涉及到各种通讯协议等)FreeRTOS简介:以前是第三方免费rtos,后被Amazon收购;RTOS学习主要学什么?(1)RTOS的应用开发,核心是任务创建、IPC、内存管理等;

2024-06-16 14:45:44 675 1

原创 嵌入式第一部分-第二集:ARM体系结构与汇编指令

电子器件的发展方向:模拟器件->数字器件ASIC->可编程器件ASIC,专用芯片、程序已经确定,不可更改,出厂时功能已经确定。可编程器件的特点:CPU在固定频率的时钟控制下节奏运行;CPU可以通过总线读取外部存储设备种的二进制指令集,然后解码执行;这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM)定义的,本质上是一串由1和0组成的数字。这就是CPU的汇编指令集。

2024-04-30 08:51:58 1014

原创 嵌入式相关问题

extern代表这个函数、变量是全局的,可以在其他文件中使用;static代表这个函数、变量只能在本文件中使用,不能在其他文件中使用;2,头文件包含问题使用以下代码,可以避免重复包含:... ...#endif注意:头文件的所有内容都要包含到上述代码的内部。3,#undef4,#programsimulink生成的代码中,标定量前缀通过const volatile修饰,那如何在标定时还能修改这个标定量呢?

2024-04-13 10:34:46 278

原创 单片机第四季-第二课:uCos2源码-BSP

本章节内容BSP是对外设驱动的初始化,与前边通过stm32标注库操作没有本质区别,与uCos有什么关系呢?

2024-03-17 15:59:44 1276

原创 单片机实践:开发板上运行AES128防盗算法

本章内容主要是在开发板上运行AES128防盗算法,并且通过串口调试助手观测防盗算法加密后的值以及解密后的值,判断防盗算法是否在开发板上正确运行。

2024-03-17 14:28:20 883

原创 单片机第四季-第一课:RTOS需要知道的事儿

操作系统是什么?以人类社会类比,小公司三四个人都是干活的,大公司有几万人其中有几千人从事管理工作,他们的工作是让其他人的干活效率更高。51单片机为什么没有操作系统,因为51的性能太低,资源太少,类似一个小公司,它上面运行的每一行代码都是干活的。随着单片机性能提升,硬件更复杂,就像人类社会人越来越多,生产力不断提升,这时候就需要专门的代码管理这些资源(比如内存、flash、IO等)。类似于一个小公司只有几个人,老板可以直接管理这些人,一个几万人的公司老板是无法直接管理这么多人的,就需要设置各种中层职位来进行管

2024-03-16 16:16:12 1418

原创 单片机第三季-第七课:STM32中断体系

NVIC: Nested Vector Interrupt Control,嵌套向量中断控制器;68个可屏蔽中断通道。数据手册得向量表结合起始代码查看:数组里(__Vectors )定义了数据类型为DCD的许多个元素。下边图中可理解为复位时调用Reset_Handler函数,先执行SystemInit,然后执行__main:本章节我们关注的是外部中断相关的内容:起始代码中为我们提供了中断函数默认的执行程序,即下图中的,其含义即是C中的while(1)。

2023-12-23 15:03:03 1551

原创 单片机第三季-第四课:STM32下载、MDK和调试器

Keil科普JLINK调试器厂家。

2023-12-04 20:17:49 1048

原创 单片机第三季-第六课:STM32标准库

如何获取最新版本标准外设库?从意法半导体官网下载。意法半导体STM32F10x系列最新版本为3.6.0版本,本文章中使用的是3.5.0版本。使用SourceInsight软件建立工程查看标准库,SourceInsight软件方便对源码进行查看,具体参考参考嵌入式第二部分《2.3.6.SourceInsight的基本使用》。

2023-12-03 15:18:17 1797

原创 单片机第三季-第五课:GPIO控制LED

STM32和51或其他简单单片机的相同:(1)开发环境都是Keil;(2)都是看原理图和数据手册;(3)都是用C语言;STM32和51或其他简单单片机的不同:(1)工程会更复杂,会用到Keil的一些高级设置;(2)原理图和数据手册比简单单片机更复杂(复杂不是难);(3)STM32会用到C语言的更多高级特性;

2023-11-11 10:34:12 511

原创 线性代数中涉及到的matlab命令-第三章:矩阵的初等变换及线性方程组

矩阵的初等行变换和初等列变换,统称为初等变换。待补充:使用Matlab判断两个矩阵是否等价。

2023-10-21 11:20:14 5163

原创 线性代数中涉及到的matlab命令-第二章:矩阵及其运算

矩阵与行列式的区别:(1)形式上行列式是数表加两个竖线,矩阵是数表加大括号或中括号;(2)行列式可计算得到一个值,矩阵不能;(3)两个行列式相加与两个矩阵相加不同;(4)行列式乘以一个数k,可将k乘到行列式任一行或任一列,矩阵乘以k,k与矩阵的每个元素相乘;(5)行列式是n*n的数表,矩阵可以是m*n的数表;行数和列数都为n的矩阵称为n阶矩阵,或叫n阶方阵;

2023-10-13 10:28:10 4350

原创 线性代数中涉及到的matlab命令-第一章:行列式

线性代数和matlab命令相结合,加深对线性代数概念的理解,第一章行列式

2023-10-08 19:31:42 5084

原创 单片机第三季-第三课:STM32开发板原理图、配置、浮点运算单元

我们编程时不需要考虑CPU的软浮点或者硬浮点特性,直接用C编程实现功能,然后设置好后直接编译,按照这样的规则帮我编译:我的浮点运算可以用硬浮点时用FPU(在编译环境中,如KEIL中有相应的选项可以设置,Single Precision即指只支持float类型运算,有的显示为FPU),如果不能用硬浮点就自动用软浮点来实现。自动下载即上位机下载软件通过控制RTS和DTR引脚,间接控制BOOT0和NRST,完成下载程序和复位启动。第1步:先设置BOOT1和BOOT0从系统区启动,执行系统中预设的程序;

2023-09-20 18:58:57 2184

原创 单片机第三季-第二课:STM32存储器、电源和时钟体系

,IAP的核心是用户需要在自己的应用程序中去操作单片机内部flash的控制器的寄存器,实现对内部flash的烧录功能。(4),纯外部:OSC_IN、OSC32_IN,即晶振和时钟电路都在外部,产生的外部时钟信号通过OSC_IN、OSC32_IN引脚输入,同时保证OSC_OUT、OSC32_OUT引脚悬空,这样可以实现多个mcu的时钟同步。(1)用户闪存存储器区是给我们设计来放置用户写的代码的,我们程序员写的代码烧录时就被烧录到这里了,正常工作状态下就要把STM32设置为从这里启动。

2023-09-14 08:59:00 834

原创 单片机第三季-第一课:STM32基础

DMA传输将数据从一个地址空间复制到另一个地址空间,提供外设和存储器或存储器和存储器之间的高速数据传输;(1)普中HC6800 ARM3.0 STM32F103C8T6 性价比型(又能学51又能学STM32)与51单片机不同,所有IO口均可映射到外部中断,51单片机只有特定的IO口才能识别外部中断;目前的单片机 一版都支持单步运行和调试,可以使用调试器进行调试,即debug;学会调试器的使用方法即理念,不能依靠调试器,有些问题是调试器无法解决的。JTAG,几乎所有芯片都支持,标准接口,占用5个IO;

2023-09-06 09:09:01 472

原创 单片机第二季:温度传感器DS18B20

DS18B20的基本特征:(1)内置集成ADC,外部数字接口,也就是可以直接与单片机的数字接口连接,DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;(2)单总线数字接口,布线成本低,独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20 的双向通讯;(3)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;

2023-09-03 22:07:14 2805

原创 单片机第一季:零基础13——AD和DA转换

51 单片机系统内部运算时用的全部是数字量,即0 和1,因此对单片机系统而言,无法直接操作模拟量,必须将模拟量转换成数字量。所谓数字量,就是用一系列0 和1 组成的二进制代码表示某个信号大小的量。用数字量表示同一个模拟量时,数字位数可以多也可以少,位数越多则表示的精度越高,位数越少表示的精度就越低。ADC(analog to digital converter)也称为模数转换器,是指一个将模拟信号转变为数字信号。单片机在采集模拟信号时,通常都需要在前端加上A/D 芯片。

2023-08-13 09:11:42 4128

原创 单片机第一季:零基础12——I2C和EEPROM

AT24C01/02/04/08/16...是一个1K/2K/4K/8K/16K 位串行CMOS,内部含128/256/512/1024/2048 个8 位字节,AT24C01 有一个8 字节页写缓冲器,AT24C02/04/08/16 有一个16 字节页写缓冲器。该器件通过I2C 总线接口进行操作,它有一个专门的写保护功能。我们开发板上使用的是AT24C02(EEPROM)芯片,此芯片具有I2C 通信接口,芯片内保存的数据在掉电情况下都不丢失,所以通常用于存放一些比较重要的数据等。

2023-07-30 18:52:16 1056

原创 单片机第一季:零基础11——实时时钟DS1302

DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三根通信线:①RES复位②I/O 数据线③SCLK 串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。

2023-07-24 17:46:42 2442

原创 单片机第一季:零基础10——串口通信和RS485

如果发生接收中断,即会进入串口中断执行,在中断程序内将接收中断标志位RI置0,读取接收寄存器内的数据,并将读取的数据发给发送寄存器,直到发送完毕,硬件将发送完成中断标志位TI置1后,通过软件再将TI置0,执行完后回到主函数内继续运行,如此循环。具体的介绍,大家可以百度串口通信了解。异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“ 位间隔”的整数倍。

2023-07-16 15:58:30 3238

原创 单片机第一季:零基础9——直流电机和步进电机

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。从上图中可以看出,该电路是独立的,芯片的输入通过J46 端子提供,芯片的输出由J47 端子引出。由于该模块电路是独立的,所以使用任意单片机管脚都可以,为了与我们例程程序配套,这里使用P1.0 管脚来控制ULN2003 输出,即将P1.0 管脚连接到J46 的IN1,直流电机的两根线接J47 端子的1、2 脚即5V 和O1。改变绕组通电的顺序,电机就会反转。

2023-07-15 17:30:32 2786

原创 单片机第一季:零基础8——蜂鸣器

所以我们不会直接使用IO 口驱动蜂鸣器,而是通过三极管把电流放大后再驱动蜂鸣器,这样51 单片机的IO 口只需要提供不到1mA 的电流就可控制蜂鸣器。这里说的有源和无源,并不是指电源的意思,而是指蜂鸣器内部是否含有振荡电路,有源蜂鸣器内部自带振荡电路,只需提供电源即可发声,而无源蜂鸣器则需提供一定频率的脉冲信号才能发声,频率大小通常在1.5-5KHz 之间。对于有源蜂鸣器,通常内部已经固定了频率,对于调节频率或占空比可能改变不了蜂鸣器的音调和音量,当然也有的有源蜂鸣器可以实现和无源蜂鸣器一样的效果。

2023-07-15 11:07:58 4027

原创 单片机第一季:零基础6——按键

按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态, 如果按键按下,初始导通状态变为断开,初始断开状态变为导通。由于机械点的弹性作用,按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开,因而在闭合和断开的瞬间均伴随着一连串的抖动。抖动时间的长短由按键的机械特性决定的,一般为5ms 到10ms。按键稳定闭合时间的长短则由操作人员的按键动作决定的,一般为零点几秒至数秒。按键抖动会引起按键被误读多次。为了确保CPU 对按键的一次闭合仅作一次处理,必须进行消抖。

2023-07-15 09:35:19 3746

原创 单片机第一季:零基础7——定时器和计时器

51 单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器/计数器。定时器/计数器和单片机的CPU 是相互独立的。定时器/计数器工作的过程是自动完成的,不需要CPU 的参与。51 单片机中的定时器/计数器是根据机器内部的时钟或者是外部的脉冲信号对寄存器中的数据加1。有了定时器/计数器之后,可以增加单片机的效率,一些简单的重复加1 的工作可以交给定时器/计数器处理。CPU 转而处理一些复杂的事情。同时可以实现精确定时作用。

2023-07-13 22:06:58 4257

原创 单片机第一季:零基础5——LED点阵

要想在点阵上显示数字等字符,首先要获取在LED 点阵上显示数字字符所需的数据,即一个数字字符在LED 点阵上显示,对应的每行每列都会有一些灯点亮或者熄灭,这样就会构成一组数据,也就是数字字符的显示数据,我们只要将这些数据通过74HC595 发送到点阵对应的行或列就能显示数字字符。数据通过SER按bit输入,循环8次即可将一个字节写入寄存器中,每次循环需要设置一个SRCLK上升沿,当8个移位寄存器写满后,在通过SER输入的数据,会将前边写入移位寄存器的8个bit依次通过QH'输出;QA-QH:数据输出管脚;

2023-07-11 14:48:20 1122

原创 单片机第一季:零基础4——数码管

(1)驱动方法的差异。数码管(其实就是LED)如果按照共阳极接法则单片机可以直接驱动显示,如果按照共阴极接法则单片机不能直接驱动,因为单片机的IO口提供的电流大小不够驱动数码管内部的LED显示,需要外部电路来提供一个大电流驱动的芯片来解决(上个课程中的74HC573就是起的这个作用)。第二,微观上数码管是依次亮的,我们可以给不同的数码管送不同的段码,所以不同的数码管可以显示不同的数字。(2)显示数字(甚至文字)原理:利用内部的LED的亮和灭让外部的组成数字的笔画显示或者不显示,人看到的就是不同的数字。

2023-07-06 19:54:30 871

原创 单片机第一季:零基础3

12T和6T和1T的问题:典型的51单片机都是12T的,12T的意思就是51单片机内部会对外部时钟频率进行12分频后再给CPU(如果外部晶振是12MHz,则外部时钟频率就是12MHz,内部CPU的主频就是12MHz/12=1MHz),6T的含义就是CPU时钟频率=外部时钟频率/6,1T的含义就是内部CPU时钟频率=外部时钟频率/1。单片机中大部分的引脚都是IO(P开头的引脚都是IO),将来单片机内部的程序运行就会通过操作这些IO来和外部电路交互,从而实现程序目的。),这就是锁存器的作用。

2023-07-06 17:01:44 604

原创 单片机第一季:零基础2

51单片机发展史:51单片机由Intel公司设计诞生(1)1971年,Intel推出4位单片机Intel4004(2)1972年,Intel推出8位单片机Intel8008(3)期间还有别的公司如Motorola、Zilog等推出各自的单片机系列(4)80年代初,Intel推出MCS-51系列单片机(即Intel8051)(5)后来Intel继续做了16位8085、8086等,再后来做了32位,再后来64位···一直到现在。

2023-07-05 16:28:23 708

原创 单片机第一季:零基础1

单片机是全球用量最大的CPU,是物联网节点设备主控CPU,单片机是其他物联网编程技术的基础,通过学习单片机学习编程语言、调试技巧、工具使用等;51单片机最简单、最典型、用的最广、学习成本最低;51单片机的内核是免费的,典型应用如:电容触摸IC、Wifi芯片(ESP8266)、zigbee无线通信芯片;本学习过程使用的开发板为普中科技的开发板,包括LED、静态数码管、动态数码管、按键、LED点阵、蜂鸣器、电机、RS232、温度传感器、红外遥控等;

2023-07-02 22:36:16 538

原创 C++——queue容器

queue容器,队列

2023-02-08 17:40:52 740

原创 C++——stack容器

stack容器

2023-02-07 18:00:49 278

原创 C++——deque容器

deque容器,使用vector和deque容器的案例

2023-02-07 13:50:48 1108

原创 C++——vector容器

vector容器

2023-02-05 17:12:34 452

原创 C++——string容器

string容器

2023-02-05 13:32:39 249

原创 C++——STL

c++ STL基础

2022-12-28 20:42:06 399

原创 C++函数模板

C++函数模板

2022-12-04 20:50:02 279

原创 C++类模板

C++ 类模板

2022-12-04 20:44:57 495

原创 Matlab-如何使用m文件生成或保存枚举量(ENUM)到文件中

m文件生成枚举量(ENUM)到DD文件中

2022-12-02 19:19:20 2014

原创 C++文件操作——读写文件

C++文件读写

2022-11-26 14:21:09 8407

空空如也

空空如也

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

TA关注的人

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