【STM8】使用SPI通讯控制多个级联MBI5043 一一外设(SPI和TIM4)使用

外设的使用

概要:本项目用到了SPI通信和TIM4定时器。这一章将介绍如何使用C语言来调用相应外设,
调用外设分为两部分,一是初始化,二是使用外设。
初始化分为三步

外设时钟初始化-------外设时钟门控寄存器(CLK_PCKENR)---上一章时钟初始化有介绍
外设对应引脚初始化---------GPIO的寄存器 ---上一章引脚初始化有介绍
外设寄存器初始化------------外设的寄存器

使用外设,常使用的寄存器

控制寄存器(CR)
状态寄存器(SR)
数据寄存器(DR)
、、、

TIM4 实现 精准延时

查阅STM8S的参考手册,定时器最常见的使用方法是中断。如下图
在这里插入图片描述
本文将 “中断产生” 改成 “原地等待计数器溢出,再执行下一步” ,所以TIM4具体使用情景时

有更新事件
无中断
一次等待越久越好。所以分频系数改最大,自动重装载值(ARR)也可以改最大,设为125,一次延时正好是1ms. 
delay_once = ARR*T = ARR*(1/f_cnt) = ARR*(2^PSC[2:0]/f_master)

初始化 TIM4_init()

根据上文TIM4使用情景,以下代码就容易理解了
代码如下:

void TIM4_init(void)
{
   
	TIM4_PSCR=0x07;  //2^PSC[2:0] = 2^7
	TIM4_EGR=0x01;	//无触发事件,有更新事件
	TIM4_IER=0x00;   //无触发中断和更新中断
	TIM4_ARR=125;	//ARR=125
	TIM4_CNTR=0x00; //CLEAR COUNTER
}

延时函数 delay()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值