【单片机学习笔记】(12):定时器中断、巡线小车各模块原理、stm32HAL库

 快捷键

注释:        CTRL+K,然后CTRL+C

取消注释:   先CTRL+K,然后CTRL+U

/ 定时器中断 /

低电平和下降沿触发

低电平触发:触发后一直处于中断状态,在低电平时间内中断一直有效,直到变为高电平。

下降沿触发:检测到信号由下降沿时就触发开关动作,只触发一次,只有在下次电平发生变化时才会重新触发中断。

 中断

定时器/计数器:可以通过内部时钟外部脉冲信号实现对寄存器数据加1的操作。

定时时间T = 12x(2的n次方-x)/单片机晶振频率

Tc为定时时间;n为定时器工作方式,即TMOD来决定。

举例:

选择T0为n=16位定时器方式,即TMOD=0x01。外部晶振为11.0592MHz且采用12分频

则单位时间(机器周期)Tu=12/11059200=1.09us;定时Tc=50ms。T0初值为:

X=2^n-Tc/Tu=2^16-(50*10^3)/(1.09)=65536-45872=19664=4CD0H,即TH0=4C,TL0=D0;

其他公式

定时器中断,生成时基0.1MS一次,计算公式t=(0xffff-0xffa3)*12/(11.05926*10^6)

       /*

              16位定时器可计数0xffff次,计满溢出,TF位会置,如若开启了中断,TF为1将触发中断,执行下面的中断服务函数,然后TF位会被硬件自动清为0

              放入初值0xffa3,即计满定时器总共要计数(0xffff-0xffa3)

              晶振震荡12次为一个机器周期,即定时器计数器每加1,用时12/(11.05926*10^6)s

*/

12M的晶振 也可以直接这样算TH和TL:

TH = (65536 – time)/256;      

TL = (65536 - time)%256;

Time是定时时长,单位是微秒。

特殊功能寄存器

TMOD(Timer Mod Control Regester)

TMOD用于设置计数器/计时器的工作方式

D0~D3是T0的设置,D4~D7是T1的设置

GATE:门控位。

GATE= 0时,只要在编写程序是的TR0或TR1为1,就可以启动定时器/计数器工作

GATE= 1时不仅要使TR0或TR1为1,且需要外部引脚也为高电平,才能工作

C/T:定时/计数模式切换,C/T= 0时为定时模式,C/T = 1时为计数模式

M1,M0:用来选择定时器/计数器的工作方式,一般采用16位计时计数器。

TCON(Timer Control)控制寄存器

TCON用于控制定时器/计数器的启动和中断申请

TF1(Timer Flag定时器器标志位):=1时表示T1有中断产生

TR1:=1时表示T1开始运行。(对应T0引脚,需高低电平驱动

TF0:=1时表示T0有中断产生

TR0:= 1时表示T0开始运行

IE1:=1表示INT1有中断产生。

IT1:=1时INT1为下降沿触发,=0时为低电平触发

IE0= 1表示INT0有中断产生。

IT0:=1时INT0为下降沿触发,=0时为低电平触发

IE(Interrupt Enable)中断允许寄存器

EA:整体中断允许位;EA = 1 允许中断

ET2:T2中断允许位;ET2=1允许中断(c52不一定有)

ES:串行中断允许位;ES= 1允许中断

ET1:T1中断允许位;ET1 = 1允许中断

EX1:INT1中断允许位;EX0= 1允许中断

ET0:T0中断允许位;ET0=1允许中断

EX0:INT0中断允许位;EX0=1允许中断

/ 稳压模块 /

用来给红外传感器和单片机供电的是5V稳压芯片LM2940

/ 电机驱动模块 /

L298N芯片

L298N芯片可以驱动两个二项电机,也可以驱动一个四相电机,可由单片机的IO口直接控制,Vs电压要比Vss的电压高,否则会失控。

引脚4,VS接电源,电压范围是2.5~46V,输出电流可达2.5A,可驱动电感性负载。

引脚1、15下是输出电流反馈引脚,通常使用是两引脚直接接地

OUT1、2OUT3、4可分别接电机。

引脚5,7,10,12接输入控制电平,控制电机正反转

EnA、EnB是使能控制引脚,控制电机的转停。

L298N控制两个二相直流电机

EnA

In1

In2

状态

EnB

In3

In4

状态

0

X

X

停止

0

X

X

停止

1

1

0

正转

1

1

0

正转

1

0

1

反转

1

0

1

反转

1

1

1

刹停

1

1

1

刹停

1

0

0

停止

1

0

0

停止

/ 检测模块 /

 LM324N

比较器,内部有四个工作在饱和区的运算放大器,属于运算放大器在信号处理方面的应用。

“+”输入端电压高于“-”输入端电压电压比较器输出高电平。

“+”输入端电压低于“-”输入端电压电压比较器输出低电平。

 TCRT5000红外传感器

当发射的红外线没有被反射回来或者反射强度不够时,光敏三极管不工作

当红外线的反射强度足够且被光敏三极管接收到时,光敏三极管处于工作状态

调试时可通过调整红外发光管负极和GND之间的电阻值(范围我100~500欧)以及光敏三极管发射极与GND之间的电阻值(范围为5~20K),使测试性能达到理想值。

一般200欧姆10K的电阻与之配合效果较好。

LM324与TCRT5000配合检测黑线

有黑线输出高电平:有黑线时,反射到光敏三极管的光照强度不够,三极管不工作,比较器的“+”输入端电压高于“-”输入端的参考电压,比较器输出高电平。

无黑线输出低电平:无黑线时,反射到光敏三极管的光照强度足够,三极管处于工作状态,比较器的“+”输入端电压被拉低,低于“-”输入端电压,比较器输出低电平。

/ 舵机MG995 /

舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。

(软件调试查看电平状态)

https://jingyan.baidu.com/article/19192ad803101ce53f570776.html

/ stm32 /

芯片资源

GPIO:通用输入输出引脚

可在选型手册中看stm32 的资源,STM32F103ZET6有144个引脚,112个IO(一般是高电平时3.3,低电平是0,大部分IO口都耐5V,模拟通道除外),512K FLASH, 64k SRAM。

3个12位AD(analog转digital),有21个外部测量通道,转换范围0~3.6V,一般是0~3.3V。

2个12为DA(digital转analog)。

12个DMA(直接存储器访问)通道(7通道DMA1,5通道DMA2)

定时器有11个,13个通信接口

芯片引脚和功能对应

当需要相关知识时,去资料包中找对应stm32的芯片手册,用ctrl+f搜索相应文件中的相应信息。在I/O lever一栏中有FT的就是代表该引脚可以容忍5v。

STM32最小系统

包含:供电复位时钟(两个外部晶振)、Boot启动模式选择下载电路后备电池

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值