2022年5月26日 STM32—— SysTick系统定时器 和 通讯知识

此内容仅供自己方便学习和回顾,内容来源于野火指南者开发板教程。

一.SysTick系统定时器

SysTick系统定时器:24bit的向下递减的计数器,每次计数时间为 1/SYSCLK,当重装载数值寄存器的值递减到0的时候,系统定时器就产生一次中断,如此反复。

SysTick的4个寄存器:对应位的功能可以查STM32F10x-中文参考手册

利用SysTick产生1s的时基,LED以1s的频率闪烁

程序思路:

1.设置重装载寄存器的值

2.清楚当前数值寄存器的值

3.配置控制与状态寄存器

SysTick配置库函数:

这里的中断优先级是15,那怎么和外设的中断优先级比较呢?

假设一个外设的中断优先级分组为2,抢占优先级为1,子优先级也为1,systick的优先级为默认的15.先把systick的优先级15转化为二进制1111,又因为NVIC的优先级分组为2,那么二进制前两位和后两位都是11也就是3,systick抢占和子优先级都比外设的优先级低。(优先级的数越低优先级越高!)

SysTick_Config(uint32_t ticks)参数的计算:

因为SysTick定时器的计数器是向下递减计数,计数一次时间T1=1 / CLK,当重装载寄存器的值VALUE减到0时,产生中断,中断的时间T= VALUE * T1。其中CLK=72MHZ,VALUE就是我们要设定的值。

us级定时

ms级定时:只改了重装载值

 

二.通讯知识

串行通讯:同一时刻只能传输一个数据位的数据

并行通讯:同时传输多个数据为的数据

由数据通讯的方向分为全双工、半双工和单工通讯(特点如下):

 

同步通讯和异步通讯:区别是否有时钟信号

同步通讯:

异步通讯:

 

比特率:每秒钟传输的二进制位数,单位是比特每秒(bit/s)

波特率:每秒传输了多少个码元

当0V表示数字0,5V表示数字1,一个码元就可以表示两种状态0和1,所以一个码元等一个二进制比特位,即波特率的大小等于比特率。

当0V、2V、4V、6V表示二进制数00、01、10、11,那么每个码元可以表示4种状态,即两个二进制比特位,所以码元数是二进制比特数的一半,这时波特率等于比特率的一半。传了2个二进制等于传一个码元。

重:比特率 = 波特率 * (一个符号)几位

或 比特率 = 波特率 * log2(N)    备注:N等于有多少种离散值即2^(几位)

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值