历史上的今天
今天是:2024年10月15日(星期二)
2019年10月15日 | STM32 PWM输出控制步进电机-3000转每分钟串口显示+电位器调速
2019-10-15 来源:eefocus
用电位器控制步进电机转速,可以控制正反转,在电位器中点停止;越往左翻转越快,越往右正转越快。速度均匀,包含滤波。付完整代码。全部测试正常。
单片机源程序:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"
#include "adc.h"
int main(void)
{ u16 adcx;
float temp;
int a=3999;
//int b=0
u16 led0pwmval=200;
u8 dir=1;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
TIM3_PWM_Init(a,71); //不分频。PWM频率=72000000/900=80Khz
Adc_Init();
while(1)
{
adcx=Get_Adc_Average(ADC_Channel_1,10);
// adcx=2100;
delay_ms(8);
// temp=(float)adcx*(3.3/4096);
// adcx=temp;
printf("adcx=%d;", adcx);
a=adcx;
a=a-2000;
//a=a*1000;
//if (-1000>a>1000) a=1;
//
//a=a*1000;
a=100000/a;
if(a > 0)
{
LED1=1;
//sl = speed_l;
}
else
{
LED1=0;
a = a * (-1);
}
//a=1000000/a;
// if (a<1000) a=1000;
// if (a>100000) a=100000;
// a=1000/a;
//if (a<0) LED1=0;
//if (a>0) LED1=1;
TIM3_PWM_Init(a,71); //不分频。PWM频率=72000000/900=80Khz 最高=72000000/A*6=600000,,转速=6000000/800*60=4500
//printf("arn");
//printf("count = %dn",count);
printf("a=%dn;", a);
delay_ms(8);
// if(dir)led0pwmval++;
// else led0pwmval--;
// if(led0pwmval>300)dir=0;
// if(led0pwmval==0)dir=1;
//TIM_SetCompare2(TIM3,led0pwmval);
}
}
史海拾趣
|
我最近在做wince+2440,设计的产品为室外无人值守型产品,关于wince能否连续数年稳定可靠的运行一直有所顾虑。 希望做过这些产品的兄弟们给点意见。 另外wince对flash频繁的读写会不会引起坏区,从而要格式化重做系统?… 查看全部问答> |
|
比如AMD和INTEL的CPU,----------又或者其他的牌子的CPU ,比如苹果的CPU,所用的指令系统都是不一样的吧,如果一个指令占2个字节,那么这两个字节的内容对于AMD和INTEL应该都是不同的吧。 那么操作系统如何针对各自不同的CPU生成各自不同的指令呢 ...… 查看全部问答> |
|
我的AT89S52学习版 说明图纸上面 蜂鸣器和二极管第四个灯 都是P1.3针脚控制 用KEIL编程时 灯亮蜂鸣器也响 怎么去分别控制?! 谢谢… 查看全部问答> |
|
#include <C8051F410.h> #include <intrins.h> sbit SPI_Clk = P0^2;sbit SPI_Out = P0^3;sbit SPI_In = P0^6;sbit SPI_Cs = P0^7; void System_Setup(void);void SPI_Write(unsigned int SPI_Data);unsigned int SPI_Read(v ...… 查看全部问答> |
|
管他什么芯片呢,让编译器去翻译就好了,我们所关心的是硬件资源怎样,复杂的东西不容易一下就搞出来而已。 linux算除了写驱动都算搞软件吧。 “程序和程序差别很大”初学者很少有人能理解。… 查看全部问答> |
|
为了进一步完善下载中心,方便大家检索资源,我们准备对资料分类进行调整和修改。本着从群众中来到群众中去的理念,我们决定——发布分类调查投票 特别提示:第二期调查已开始,传送门:https://bbs.eeworld.com.cn/thread-431477-1-1.html ...… 查看全部问答> |
|
大多数数字系统中,除了需要具有逻辑运算和算数功能的组合逻辑电路外,还需要具有存储功能的电路,组合逻辑与时序逻辑可构成时序逻辑电路,简称时序电路。现在讨论实现存储功能的两种逻辑单元电路,即锁存器和触发器。 ...… 查看全部问答> |




