资源简介
2019电赛舵机云台控制代码
代码片段和文件信息
/*****************************************************************************
** File : Api_System.c
** Author : Zheng23
** Date :
** Function : 系统的一些底层函数
*****************************************************************************/
#include “include.h“
#include
static u8 fac_us=0;//us延时倍乘数
static u16 fac_ms=0;//ms延时倍乘数
//初始化延迟函数
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void InitDelay(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;//bit2清空选择外部时钟 HCLK/8
fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000;
}
//延时nms
//注意nms的范围
//SysTick->LOAD为24位寄存器所以最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK单位为Hznms单位为ms
//对72M条件下nms<=1864
void DelayMs(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL=0x01 ; //开始倒数
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//延时nus
//nus为要延时的us数.
void DelayUs(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*fac_us; //时间加载
SysTick->VAL=0x00; //清空计数器
SysTick->CTRL=0x01 ; //开始倒数
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
//设置向量表偏移地址
//NVIC_VectTab:基址
//Offset:偏移量
//CHECK OK
void MY_NVIC_SetVectorTable(u32 NVIC_VectTab u32 Offset)
{
//检查参数合法性
assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
assert_param(IS_NVIC_OFFSET(Offset));
SCB->VTOR = NVIC_VectTab|(Offset & (u32)0x1FFFFF80);//设置NVIC的向量表偏移寄存器
//用于标识向量表是在CODE区还是在RAM区
}
//设置NVIC分组
//NVIC_Group:NVIC分组 0~4 总共5组
//CHECK OK
void MY_NVIC_PriorityGroupConfig(u8 NVIC_Group)
{
u32 temptemp1;
temp1=(~NVIC_Group)&0x07;//取后三位
temp1<<=8;
temp=SCB->AIRCR; //读取先前的设置
temp&=0X0000F8FF; //清空先前分组
temp|=0X05FA0000; //写入钥匙
temp|=temp1;
SCB->AIRCR=temp; //设置分组
}
//设置NVIC
//NVIC_PreemptionPriority:抢占优先级
//NVIC_SubPriority :响应优先级
//NVIC_Channel :中断编号
//NVIC_Group :中断分组 0~4
//注意优先级不能超过设定的组的范围!否则会有意想不到的错误
//组划分:
//组0:0位抢占优先级4位响应优先级
//组1:1位抢占优先级3位响应优先级
//组2:2位抢占优先级2位响应优先级
//组3:3位抢占优先级1位响应优先级
//组4:4位抢占优先级0位响应优先级
//NVIC_SubPriority和NVIC_PreemptionPriority的原则是数值越小越优先
//CHECK OK
void MY_NVIC_Init(u8 NVIC_PreemptionPriorityu8 NVIC_SubPriorityu8 NVIC_Channelu8 NVIC_Group)
{
u32 temp;
u8 IPRADDR=NVIC_Channel/4; //每组只能存4个得到组地址
u8 IPROFFSET=NVIC_Channel%4;//在组内的偏移
IPROFFSET=IPROFFSET*8+4; //得到偏移的确切位置
MY_NVIC_PriorityGroupConfig(NVIC_Group);//设置分组
temp=NVIC_PreemptionPriority<<(4-NVIC_Group);
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0xf;//取低四位
if(NVIC_Channel<32)NVIC->ISER[0]|=1< else NVIC->ISER[1]|=1<<(NVIC_Channel-32);
NVIC->IPR[IPRADDR]|=tem
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 1980-01-01 00:00 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\
目录 0 1980-01-01 00:00 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机速度控制\
目录 0 1980-01-01 00:00 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\
目录 0 1980-01-01 00:00 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\
目录 0 1980-01-01 00:00 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\User\
目录 0 1980-01-01 00:00 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Pro\
目录 0 1980-01-01 00:00 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\
文件 3388 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\stm32f10x_type.h
文件 12958 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\startup_stm32f10x_md.s
文件 28290 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\stm32f10x_map.h
文件 3018 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\Api_System.h
文件 19198 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\stm32f10x_nvic.h
文件 2225 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\cortexm3_macro.h
文件 5665 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\Api_System.c
文件 6194 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Api\stm32f10x_conf.h
文件 45096 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\api_system.o
文件 32984 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\main.o
文件 335 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\APP.lnp
文件 37600 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\api_system.crf
文件 35620 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\app.o
文件 479 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\APP.sct
文件 41490 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\startup_stm32f10x_md.lst
文件 21892 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\APP.axf
文件 290 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\main.d
文件 281 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\app.d
文件 62 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\startup_stm32f10x_md.d
文件 242 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\app.__i
文件 36766 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\APP.htm
文件 246 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\main.__i
文件 53541 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\APP.map
文件 269 2019-08-08 16:20 63.可控电动云台(2个u梁版)\PWM舵机控制教程\STM32\STM32\多路舵机控制\Obj\api_system.__i
............此处省略58个文件信息
- 上一篇:基于labview编程语言的登录系统
- 下一篇:遗传算法精讲PPT
相关资源
- STM32 OLED显程
- 基于stm32的数字示波器c程序绝对完整
- FreeModbus--RTU--Master+Slave--uCOSIII--STM32F
- 基于STM32F4的小兵与大炮游戏
- keil.Jansson.1.0.0.pack
- OLED驱动STM32
- stm32 5路循迹智能小车资料,可遥控
- STM32F103VET6驱动HC-SR04.rar
- 旋钮编码器STM32F407
- stm32 407ad7606 程序开fa
- 基于STM32的简易脉搏计的设计
- AS608指纹模块和ESP8266wifi模块在STM32f
- STM32 RFID RC522 模拟SPI 读写卡程序
- stm32单片机实现心电图采样以及显示
- 基于stm32的hmc5983和mpu6500的驱动程序
- STM32F091多串口程序
- 通过串口控制呼吸灯的频率
- STM32快递箱程序密码界面+舵机开锁+称
-
stm32 keil用jli
nk4.40驱动 - stm32f103 编码器测试程序
- ADF4351控制代码
- stm32 42相步进电机驱动完整工程
- 基于stm32f103和OV7725的监控拍照计数显
- STM32F103步进电机、压力传感器、温湿
- STM32F1控制六自由度机器人 程序源码,
- 基于stm32的仿生机械手程序-基础
- STM32F103 驱动四路MAX6675 采集温度 LC
- stm32f1 直流电机控制
- 18位8通道AD7608驱动程序.rar
- stm32I读写AT24c02IIC通讯
评论
共有 条评论