MSP432(Keil5)——3.delay延时驱动

在这里插入图片描述

本次示例中的延时函数采用了系统内部的systick时钟,学习了正点原子的延时函数写法。
如果你移植出来不是标准的延时,那么就是你的时钟频率设置的不对,我的是48MHz。

delay.c

#include "delay.h"

static uint8_t  fac_us=0;  


//初始化延时函数
void Delay_Init(void)
{
	fac_us = SystemCoreClock / 1000000;      
}


//延时us
void delay_us(uint32_t nus)
{
	uint32_t temp;

	SysTick->LOAD=(uint32_t)(nus*fac_us);  
	SysTick->VAL=0x00;         
	SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk;  
	do
	{
		temp=SysTick->CTRL;
	}
	while(temp&0x01&&!(temp&(1<<16)));
	SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
	SysTick->VAL =0X00;
}


//延时ms
void delay_ms(uint16_t nms)
{
	uint16_t i = 0;
	for(i=0;i<nms;i++)
		delay_us(1000);

}

delay.h

#ifndef __DELAY_H
#define __DELAY_H

/* DriverLib Includes */
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>



void Delay_Init(void);
void delay_us(uint32_t nus);
void delay_ms(uint16_t nms);

#endif


下一节我会给出如何修改系统时钟频率以及如何查看系统时钟频率,小朋友,别着急。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值