前言:在本专栏《FreeRTOS》中已经为读者朋友详细介绍了FreeRTOS以及关于FreeRTOS于STM32下的手动移植。从今天开始将带领大家系统学习FreeRTOS,这款常见的轻量化小型实时操作系统。当然,考虑到FreeRTOS并不局限于STM32这一款MCU,后续文章的实验也可能使用其他MCU。言归正传,本文将从较为简单的任务创建开始学习。 一、什么是任务
一.超声波模块测距 跳线帽连接1-3和2-4! 1.原理图 2.代码及注释 sbit TX=P1^0; sbit RX=P1^1; //延时函数 void Delay10us() //@11.0592MHz { unsigned char i; _nop_(); i = 25; while (--i); } //发送超声波,规定每次发送8个
DMA介绍 DMA(Direct MemoryAccess,直接存储器访问)提供在外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。它允许不同速度的硬件装置来沟通,而不需要依赖于CPU,在这个时间中,CPU对于内存的工作来说就无法使用。 DMA的意义 数据搬运的工作比较耗时间。 数据搬运工作时效要求高(有数据来就要搬走) 。
一.软件模拟IIC 1.IIC延时函数 #define DELAY_TIME 5 void IIC_Delay(unsigned char i) { do{_nop_();} while(i--); } 2.数据发送的条件 每个时钟脉冲传输一位数据。 3.开始和停止 //总线引脚定义 sbit SDA = P2^1; /* 数据
一.原理图及引脚说明 可由Rb1电位器控制LCD的对比度 编号 引脚名 引脚说明 编号 引脚名 引脚说明 1 VSS 电源地 9 D2 Data I/O 2 VDD 电源正极 10 D3 Data I/O 3 VL 对比度调节 11 D4 Data I/O 4 RS 数据/指令选择
浮点数的储存形式 1. 浮点数的二进制表示 举个例子:4.25在这个浮点数中:4-整数部分,0.25-小数部分 整数部分-直接转换成二进制,即4表示(100) 2 ; 小数部分-将小数部分乘以2,取小数点前一位作为二进制的高位,对小数点后的部分执行相同的步骤,直到它变成1.0; 0.25 *2=0.500.5 *2=1.000.25=(01) 2 将整数和小数部分结合到一起
一.寄存器(只给出有用的位) 1.TCON定时器/计数器0/1控制寄存器 TF1:T1溢出中断标志位。产生溢出时,硬件置1,请求中断。进入中断后硬件清0; TR1:0—关闭T1,1—打开T1; TF0:T0溢出中断标志位。产生溢出时,硬件置1,请求中断。进入中断后硬件清0; TR0:0—关闭T0,1—打开T0; 2.TMOD定时器/计数器0/1工作模式寄存器 高四位控制定时器
一.串口相关寄存器(只给出有用的位) 1.SCON控制寄存器 SFR name Address bit B7 B6 B5 B4 B3 B2 B1 B0 SCON 98H name SM0/FE SM1 SM2 REN TB8 RB0 TI RI SM0/FE:当PCON寄存器的SMOD0为0时,该位和SM1一起
PWM PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于有效电平的时间占据整个信号周期的百分比。 PWM是脉冲宽度调制。 有效电平持续
一.点阵内部图 点阵的有两种,分为共阴和共阳(与数码管类似,后续代码根据共阳点阵编写)。点阵的控制主要是每行和每列电平的控制。如图,以共阳为例:若要使左上角的灯亮,则第一行输出高电平(其他行均为低电平),第一列输出低电平(其他列均为高电平)。 二.原理图 与数码管共用接口,所以数码管和点阵的显示只能选一个使用! 原理图中点阵的接口R5即代表第5行(Row),C8即代表第8列(Col
定时器 软件定时 缺点:不精确,占用CPU资源 定时器工作原理 使用精准的时基,通过硬件的方式,实现定时功能。 定时器的核心是计数器。 通用定时器框图 该框图主要分成四部分:时钟产生器、时基单元、输入捕获、输出比较 时钟产生器 STM32通用定时器有
一、LED的相关知识 1.LED,即发光二极管,是一种半导体固体发光器件。 2.LED的工作原理:LED的工作是有方向性的,只有当正级接到LED阳极,负极接到LED的阴极的时候才能工作,如果反接LED是不能正常工作的。 3.LED的原理图解析:开发板上面LED的原理图如右图,LED的阳极串联一个电阻,然后连接到电源VCC,而LED的阴极连接到单片
STM32HAL库 GPIO STM32芯片最多拥有7组端口(GPIOA—GPIOG),每组端口最多有用16个引脚(Pin0—Pin15) STM32的每个I/O端口都可以自由编程,但I/O端口寄存器必须按32位字访问 对底层硬件的操作就是对寄存器的操作 STM32的每个I/O端口都有7个寄存器来控制 STM32的I/O端口可由软件配置成8种模式 STM32CubeMX可以实现初
一.DS1302的主要性能指标 (1)DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。 (2)内部含有31个字节静态RAM,可提供用户访问。 (3)采用串行数据传送方式,使得管脚数量最少,简单SPI 3线接口。 (4)工作电压范围宽:2.0~5.5V。 (5)工作电流:2.0V时,小于300nA。
定时器 STM32入门统一版完整链接(更新中): TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频、自动重装寄存器的时基单元,在72M计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时器中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能
一、中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。 二、中断源于中断系统 引起CPU中断的根源,称为**中断源**。中断源向CPU提出的中断请求。CPU
前言 在机器人的结构中,往往电机是必不可少的组成部分,例如地面智能车中的轮子驱动,空中无人机的动力部分。电机往往是产生运动动力的直接来源,而无刷直流电机(Brushless Direct Current Motor)是应用最为广范的。 本篇博客主要描述了无刷直流电机的基本概念、结构、优劣势并且在最后展示了一个单片机(Arduino )控制无刷直流电机旋转的实例。 基本概念 无刷直流电机,英
什么是寄存器? 我们现在在开发STM32时,已经很少用到寄存器编程,更多的使用ST公司所提供的标准库和最新的HAL库进行编程实现,但是不管是标准库还是HAL库都是在原来的寄存器层面上进行了封装,知道寄存器是什么,还是很重要的,了解寄存器的原来,对我们使用标准库和HAL库也是有很大的帮助。我下面会以STM32F103VET6为例,解释寄存器到底是什么? 在STM32编程,实际上就是通过程序控制这
目录 摄像头的配置 测试摄像头设备 1. USB摄像头 2. CSI摄像头 拍摄一张图片 1. USB摄像头 2. CSI摄像头 安装V4L2驱动使OpenCV能够识别摄像头 摄像头的配置 执行命令: sudo raspi-config 进入设置页面后,之后按照下面步骤设置: 选择 Int
外部中断 STM32入门统一版完整链接(更新中): 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源 中断嵌套:当一个中断程序正在运行时,又有新的更高优先
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信