论坛元老
 
- 积分
- 6679
- 金钱
- 6679
- 注册时间
- 2015-8-25
- 在线时间
- 1036 小时
|
发表于 2018-5-25 10:27:32
|
显示全部楼层
本帖最后由 szczyb1314 于 2018-5-25 10:29 编辑
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "pwm.h"
//ALIENTEK 探索者STM32F407开发板 实验9
//PWM输出实验-库函数版本
//技术支持:www.openedv.com
//淘宝店铺:http://eboard.taobao.com
//广州市星翼电子科技有限公司
//作者:正点原子 @ALIENTEK
#define test (1)
//#define debug
int main(void)
{
u16 duty = 250;
u8 dir = 0; //0:0->180 1:180->0
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
#ifdef debug
uart_init(115200);//初始化串口波特率为115200
#endif
TIM14_PWM_Init(10000-1,168-1); //84M/84=1Mhz的计数频率,重装载值500,所以PWM频率为 1M/500=2Khz.
TIM_SetCompare1(TIM14,duty);
while(1)
{
#if (test==1)
if(0 == dir)
{
duty += 5;
if(duty >= 1250)
{
duty = 1250;
dir = 1;
}
}
else if(1 == dir)
{
duty -= 5;
if(duty <= 250)
{
duty = 250;
dir = 0;
}
}
else ;
TIM_SetCompare1(TIM14,duty);
delay_ms(3);
#ifdef debug
printf("%d ",duty);
#endif
#endif
}
}
我就时从0到180,然后从180到0,舵机转过来再转回去的,舵机上面带上一个板子,手机放在板子上,来回转,还能刷步数。天天几万步
|
|