资源简介
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 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
- STM32 DS3231驱动.zip
- STM32F103C8T6+NRF24l01无线通信
- 21天学会嵌入式开发STM32.zip
- STM32 电子密码锁设计,LCD12864显示
- STM32 LCD12864并口驱动实验
评论
共有 条评论