资源简介
本资源为基于STM32的倾斜仪程序代码,包括整个工程!下载即可使用,倾斜仪的具体设计可以移步本人博客进行参考
代码片段和文件信息
#include “delay.h“
static u8 fac_us=0; //us延时倍乘数
static u16 fac_ms=0; //ms延时倍乘数
//初始化延迟函数
//SYSTICK的时钟固定为AHB时钟的1/8
//SYSCLK:系统时钟频率
void SysTick_Init(u8 SYSCLK)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000;
}
//延时nus
//nus为要延时的us数.
void delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*fac_us; //时间加载
SysTick->VAL=0x00; //清空计数器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //等待时间到达
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//延时nms
//注意nms的范围
//SysTick->LOAD为24位寄存器所以最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK单位为Hznms单位为ms
//对72M条件下nms<=1864
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms; //时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //开始倒数
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //等待时间到达
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//初始化延迟函数
//当使用ucos的时候此函数会初始化ucos的时钟节拍
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init()
{
#ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定义了说明使用ucosII了.
u32 reload;
#endif
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //选择外部时钟 HCLK/8
fac_us=SystemCoreClock/8000000; //为系统时钟的1/8
#ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定义了说明使用ucosII了.
reload=SystemCoreClock/8000000; //每秒钟的计数次数 单位为K
reload*=1000000/OS_TICKS_PER_SEC;//根据OS_TICKS_PER_SEC设定溢出时间
//reload为24位寄存器最大值:16777216在72M下约合1.86s左右
fac_ms=1000/OS_TICKS_PER_SEC;//代表ucos可以延时的最少单位
SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk; //开启SYSTICK中断
SysTick->LOAD=reload; //每1/OS_TICKS_PER_SEC秒中断一次
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //开启SYSTICK
#else
fac_ms=(u16)fac_us*1000;//非ucos下代表每个ms需要的systick时钟数
#endif
}
相关资源
- STM32F103C8T6-ADC例程
- STM32F103驱动DS18B20程序
- ADS1256 基于 RT-Thread 4.0.2 版本驱动程序
- STM32 硬件IIC读取BH1750
- STM32控制LED灯
- STM32CubeF4固件包STM32Cube_FW_F4_V1.22.0
- STM32库函数代码自动生成器V1.2破解版
- Qt与stm32通信绘制波形
- INA226使用教程.docx
- STM32HAL库驱动SPILCD代码
- STM32F103RBT6系统原理图
- 使用STM32控制无源蜂鸣器发声播放音乐
- ST LIS3DH STM32 驱动参考代码
- STM32的AD采集信号,并发送到串口
- STM32串口连续接收一帧数据
- Keil.STM32F4xx_DFP.2.5.0.pack
- EC20开发资料,含源码
- 基于stm32智能门锁系统.rar
- STM32官方开发板原理图和PCB
- uCOS-II_DDS_FFT
- STM32的TFTLCD显示程序,亲测能用
- STM32 TIM3 四通道PWM输出实验.rar
- CUBEMX生成STM32代码删除编译信息文件(
- RC522 STM32F103C8 库函数 可任意修改
- STM32+W5500(远程更新程序的上位机)
- ROS-STM32-KEIL
- STM32编码器模式测试例程
- STM32驱动max6675测温的测试例程
- 基于STM32单片机的指纹识别模块的测试
- stm32f10x_conf.h
评论
共有 条评论