module moto_test(clock,key,duty cycle_cycle,duty cycle_cycle2,pwm_en,pwm_en2,pwm_in,pwm_in2,motoa,motoa2,hw,moto

PWM_BLDC 带霍尔传感器的无刷电机控制程序(PWM调速)
基于单片机编写的C 。 SCM 发 182万源代码下载-
&文件名称: PWM_BLDC
& & & & &&]
&&所属分类:
&&开发工具: C-C++
&&文件大小: 6 KB
&&上传时间:
&&下载次数: 93
&&提 供 者:
&详细说明:带霍尔传感器的无刷电机控制程序(PWM调速)
基于单片机编写的C程序。-Brushless motor control (PWM Control)
文件列表(日期:)(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&PWM_BLDC.txt
&[]:一般,勉强可用
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站182万海量源码库中尽情搜索:
&[] - 全国电子设计大赛:智能电动车的设计.实现功能:以AT89C52单片机为核心,用双CPU实现电动小车的实时智能控制。CPU对各个传感器检测到的信号进行综合判断处理,然后发出控制信号给电机驱动电路控制小车运行。系统采用PWM动态控制电动机转速,采用红外光电传感器检测引导线,矫正行车路线,超强纠偏。采用霍
&[] - 通过小磁片对霍尔传感器所产生的电平变化进行记数的C程序~
&[] - 经典C语言开发,用于直流电机调速
如有密码,
&[] - 3144霍尔传感器应用,绝对精彩,绝对实在,物超所值
&[] - 直流电机的测速调速模块,运用光电传感器测速,L298芯片调速
&[] - C系列单片机实现的PID算法,该算法依据误差反馈调节PWM的占空比,可实现直流电机的调速等。
&[] - DSP F2812控制直流无刷电机源代码
&[] - 一个控制两轮小车平衡的程序,关键技术PID、霍尔传感器、角度和位移的转换机构
&[] - 针对小车在行驶过程中的寻迹要求,设计了以AT89C51单片机为核心的控制电路,采用模块化的设计方案,运用色标传感器、金属探测传感器、超声波传感器、霍尔传感器组成不同的检测电路,实现小车在行驶中轨迹、探测预埋金属铁片、躲避障碍物、测量车速等问题检测,并对设计的电路进行了理论分析和实际测试。结果表明,该
&[] - 无刷电机资料,经典的电机的速度PID控制程序,极其好,找了好久找到的。【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信) - STM32 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 7491|回复: 326
【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
主题帖子积分
中级会员, 积分 286, 距离下一级还需 214 积分
中级会员, 积分 286, 距离下一级还需 214 积分
终于收到STM32F030的板子了,直接上代码测试了,感觉很不错。
现已实现基本功能驱动,此程序可作为模版程序使用,程序包含IO端口驱动,外部中断,定时器中断,PWM控制,串口通信,ADC转换.
直接上传代码了,希望大家在此基础上增加功能并共享,有问题在此回帖讨论。
程序功能说明:LD3以1HZ闪烁,LD4以半周期20ms,40ms....200ms闪烁(通过按键USER切换闪烁频率,按键还没做防抖处理)。
按键切换时通过串口1输出LD4闪烁频率系数0x1~0xa
定时器3的PWM输出控制,频率500HZ,
PB0& & & &&&------& TIM3_CH3,占空比25%;& & & & & & & &&&
PB1& & & &&&------& TIM3_CH4,2ms基准占空比增加,到100%时回到0%;& & & & & & & &&&
PB4& & & &&&------& TIM3_CH1,占空比80%;& & & & & & & &&&
PB5& & & &&&------& TIM3_CH2,占空比50%.
上图片了:
上代码了:
本帖子中包含更多资源
您需要 才可以下载或查看,没有帐号?
主题帖子积分
初级会员, 积分 170, 距离下一级还需 30 积分
初级会员, 积分 170, 距离下一级还需 30 积分
回复:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
这个必须支持啊,本人新手,很有帮助啊
主题帖子积分
初级会员, 积分 170, 距离下一级还需 30 积分
初级会员, 积分 170, 距离下一级还需 30 积分
回复:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
再推荐社区网友原创汇总:
主题帖子积分
新手上路, 积分 29, 距离下一级还需 21 积分
新手上路, 积分 29, 距离下一级还需 21 积分
回复:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
主题帖子积分
新手上路, 积分 49, 距离下一级还需 1 积分
新手上路, 积分 49, 距离下一级还需 1 积分
RE:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
正在学习STM32F030
主题帖子积分
中级会员, 积分 418, 距离下一级还需 82 积分
中级会员, 积分 418, 距离下一级还需 82 积分
RE:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
谢谢分享。、。、。
主题帖子积分
初级会员, 积分 86, 距离下一级还需 114 积分
初级会员, 积分 86, 距离下一级还需 114 积分
RE:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
主题帖子积分
初级会员, 积分 86, 距离下一级还需 114 积分
初级会员, 积分 86, 距离下一级还需 114 积分
RE:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
主题帖子积分
新手上路, 积分 0, 距离下一级还需 50 积分
新手上路, 积分 0, 距离下一级还需 50 积分
回复:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
主题帖子积分
初级会员, 积分 99, 距离下一级还需 101 积分
初级会员, 积分 99, 距离下一级还需 101 积分
RE:【STM32F030开发日志】工程模板_基础实验(实现端口驱动,外部中断,定时器中断,PWM控制,串口通信)
便宜又实用的板子
站长推荐 /1
欢迎大家分享基于STM32 Nucleo板的设计方案,社区将提供500-3000元不等的开发经费支持——赶紧来赢取ST MCU社区赞助吧!
300套Nucleo-F072申请名单已公布。
Tel: 3-8056
备案号: 苏ICP备号-2
Powered byAS5245_04 (AMSCO [可编程360磁性角度编码器与绝对SSI和PWM输出]) PDF技术资料下载
AS5245_04 供应信息 IC Datasheet 数据表 (2/32 页)
按型号查询:
&可编程360磁性角度编码器与绝对SSI和PWM输出&[Programmable 360 Magnetic Angle Encoder with Absolute SSI and PWM Output]
型号:&&AS5245_04PDF文件:
鼠标右键选目标另存为
不需安装PDF阅读软件
需安装PDF阅读软件
描述:&&可编程360磁性角度编码器与绝对SSI和PWM输出[Programmable 360 Magnetic Angle Encoder with Absolute SSI and PWM Output]文件大小:&&1914 KPDF页数:
&&32 页联系供应商:&& 品牌Logo:
&&&&AMSCO [ AUSTRIAMICROSYSTEMS AG ]
中文翻译版 (新)
数据表AS5245可编程360°磁性角度编码器与绝对SSI和PWM输出1概述该AS5245是一个非接触式磁性编码器的角度进行准确测量高达360?,包括在两AS5145设备打孔堆放引线框架。它是一个系统级芯片整合了集成式霍尔元件,模拟前端和数字信号处理中的单个设备。来测量角度,仅仅一个简单的2极磁体上方旋转在芯片的中心是必需的。该磁体可置于上述或低于该集成电路。这种绝对角度测量提供的即时指示磁铁的角位置与0.0879? = 4096的分辨率每转的位置。这个数字数据可作为串行位流和作为PWM信号。一个内部稳压器允许AS5245的操作,从3.3V或5.0V电源。该AS5245是汽车完全符合AEC - Q100 0级。两个数字的12位绝对输出正交A / B ( 10位或12位)和索引输出信号用于磁铁位置监测的故障检测模式和电源的损耗用户可编程零位宽温度范围: - 40°C至+ 150°C独特的芯片标识2主要特点在一个非接触式高分辨率旋转位置编码360度的整圈图1. AS5245框图TecMode_Index/AS5245hn一个IC人米共sANT摹entsTIL小型封装: QFN 32 LD ( 7×7 )汽车完全符合AEC -Q100标准,等级03应用该AS5245非常适合与角行程范围的应用从几度高达360一整圈。该装置适用于汽车应用,如节气门位置传感器,气体/刹车踏板位置传感,头灯位置控制,非接触式旋转位置传感,前面板旋转开关和更换电位器。VDD3V3VDD5VLDO 3.3VPWM接口罪昂霍尔阵列&放大器;前端扩音器COSDSPMAG绝对接口( SSI)的OTP注册MUXAS5245增量接口注:该框图给出只有一个模修订版1.5lv分别为MagINCnMagDECnPWMDOCSNCLKPDIODTEST1_ADTEST2_B1 - 31承受磁铁偏离和气隙变化al“红 - 黄 - 绿”指标显示磁铁放置在Z- AXISid所属子分类:
注册时间: 11:37
回复数: 54
主题数: 40
论坛积分:174
void TIM3_PWM_Init(u16 arr,u16 psc)//我给的参数是TIM3_PWM_Init(99,72)
72M然后72分频,TIM3时钟应该是1M。。然后100次计数后重载。PWM频率就是1M除以100等于10KHZ。
为什么示波器观察,频率大概为100hz. & & &如果要输出10KHZ的PWM,要怎么给这个函数参数。
推荐参考答案
注册时间: 13:22
回复数: 4332
主题数: 73
论坛积分:5451
来自: 深圳
坐等大神出现。。。
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
注册时间: 11:37
回复数: 54
主题数: 40
论坛积分:174
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,&ENABLE); //使能定时器3时钟
& RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB&&,&ENABLE);&&//开启PB时钟
&
&&&//设置TIM3管脚为复用输出PB0-&CH3&&&PB1-&ch4
GPIO_InitStructure.GPIO_Pin&=&GPIO_Pin_0|GPIO_Pin_1;&//TIM_CH3&CH4
GPIO_InitStructure.GPIO_Mode&=&GPIO_Mode_AF_PP;&&//复用推挽输出
GPIO_InitStructure.GPIO_Speed&=&GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&&GPIO_InitStructure);//初始化GPIO
&
&&&//初始化TIM3
TIM_TimeBaseStructure.TIM_Period&=&&//设置重装值
TIM_TimeBaseStructure.TIM_Prescaler&=&//设置分频数
TIM_TimeBaseStructure.TIM_ClockDivision&=&0;&//设置时钟分割TDTS&=&Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode&=&TIM_CounterMode_Up;&&//TIM向上计数
TIM_TimeBaseInit(TIM3,&&TIM_TimeBaseStructure);&//初始化TIM3
?
//设置TIM3&Channe3&PWM模式&&
TIM_OCInitStructure.TIM_OCMode&=&TIM_OCMode_PWM2;&//选择PWM2模式
& TIM_OCInitStructure.TIM_OutputState&=&TIM_OutputState_E&//比较输出使能
TIM_OCInitStructure.TIM_OCPolarity&=&TIM_OCPolarity_H&//输出比较极性高
TIM_OC3Init(TIM3,&&TIM_OCInitStructure);&&//CH3初始化TIM3&OC3
TIM_OC3PreloadConfig(TIM3,&TIM_OCPreload_Enable);&&//使能CH3
&
&
&
//设置TIM3&Channe4&PWM模式&&
TIM_OCInitStructure.TIM_OCMode&=&TIM_OCMode_PWM2;&//选择PWM2模式
& TIM_OCInitStructure.TIM_OutputState&=&TIM_OutputState_E&///比较输出使能
TIM_OCInitStructure.TIM_OCPolarity&=&TIM_OCPolarity_H&//输出比较极性高
TIM_OC4Init(TIM3,&&TIM_OCInitStructure);&&//CH4初始化TIM3&OC4
TIM_OC4PreloadConfig(TIM3,&TIM_OCPreload_Enable);&&//使能CH4
&
TIM_Cmd(TIM3,&ENABLE);&&//使能TIM3
注册时间: 16:51
回复数: 274
论坛积分:288
来自: 深圳
首先,你应该这样给TIM3_PWM_Init(99,71),然后通过示波器把波形的频率给显示出来,是多少再说。
注册时间: 20:39
回复数: 222
主题数: 13
论坛积分:260
确实是TIM3_PWM_Init(99,71)才是72分频,10khz。你想想,要是给TIM3_PWM_Init(99,0),照你的算法不就0分频,频率无穷大了?
注册时间: 11:37
回复数: 54
主题数: 40
论坛积分:174
回复【3楼】&TinyBoy&:
---------------------------------
不行啊。。。大神,。。(99,71),PWM波周期700ms循环。。。
能不能给个TIM3,ch3&ch4输出10KHZPWM波的代码,给小弟研究啊。。
注册时间: 16:51
回复数: 274
论坛积分:288
来自: 深圳
反正是这样调用了,不行就是其他问题了。我用的没有这样的问题,你看系统时钟对不对,我的是寄存器版的,你不一定用得上,多检查一下代码吧。
注册时间: 16:00
回复数: 113
主题数: 11
论坛积分:145
我建意你不要呼叫那麼上層的API&,&我用&F207&做的&20K&,&你可以照這方式改回你要的,&反正有示波器很容易看的
&
void&F20K_GPIO_Config(void){
&& GPIO_InitTypeDef&GPIO_InitS
&& RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,&ENABLE);
&& GPIO_InitStructure.GPIO_Pin&=&GPIO_Pin_10;
&& GPIO_InitStructure.GPIO_Mode&=&GPIO_Mode_AF;
&& GPIO_InitStructure.GPIO_Speed&=&GPIO_Speed_100MHz;
&& GPIO_InitStructure.GPIO_OType&=&GPIO_OType_PP;
&& GPIO_InitStructure.GPIO_PuPd&=&GPIO_PuPd_UP&;
&& GPIO_Init(GPIOB,&&GPIO_InitStructure);&
&& /*&Connect&TIM2&pins&to&AF2&*/&&
&& GPIO_PinAFConfig(GPIOB,&GPIO_PinSource10,&GPIO_AF_TIM2);
}
void&F20K_init(void){
UINT16&PrescalerValue&=&0;
TIM_OCInitTypeDef&TIM_OCInitS
TIM_TimeBaseInitTypeDef&TIM_TimeBaseS
F20K_GPIO_Config();
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,&ENABLE);
&& PrescalerValue&=(UINT16)&((RCC_Clocks.SYSCLK_Frequency&/2)&/&)&-&1;
//debug(&##&TIM2&Prescale&&&%d\r\n&,PrescalerValue);
&& TIM_TimeBaseStructure.TIM_Period&=&2000; //100uSec&@25n&1Count
&& TIM_TimeBaseStructure.TIM_Prescaler&=&PrescalerV
&& TIM_TimeBaseStructure.TIM_ClockDivision&=&TIM_CKD_DIV1;
&& TIM_TimeBaseStructure.TIM_CounterMode&=&TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2,&&TIM_TimeBaseStructure);
&& //
&& TIM_OCInitStructure.TIM_OCMode&=&TIM_OCMode_PWM1;
&& TIM_OCInitStructure.TIM_OutputState&=&TIM_OutputState_E
&& TIM_OCInitStructure.TIM_Pulse&=&1000;
&& TIM_OCInitStructure.TIM_OCPolarity&=&TIM_OCPolarity_H
TIM_OC3Init(TIM2,&&TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIM2,&TIM_OCPreload_Enable);
TIM_Cmd(TIM2,&ENABLE);
注册时间: 10:41
回复数: 51773
主题数: 369
酷贴数:27
论坛积分:55580
来自: 湖南
楼主这个修改下我们的开发板例程,很容易解决吧.
我的淘宝小店:
注册时间: 11:37
回复数: 54
主题数: 40
论坛积分:174
解决了。。程序没有问题,主要是示波器使用不当,测量出来的波形不对。。。。我使用示波器,总是喜欢把时间调到100ms全局扫描模式,然后抓出波形再按暂停,然后再放大观察波形。。。这样就有问题,频率低的可以这样。我抓1KHZ的PWM波,这样可以。但是抓10KHZ的PWM,如果示波器扫描时间100ms,时间过大,抓出的高频波形,根本不准。按暂停,再放大观察PWM波形抓出来的是很烂的正弦波。。。把扫描时间调到1ms抓出来的PWM波形就是好的。。
&&&不知道是我示波器是低端的原因,还是示波器抓高频波,扫描时间本来就应该设置1ms以下。。
请选择一个版面...
STM32-F0/F1/F2专区
STM32-F3/F4专区
MSP430专区
ARM7/ARM9/ARM11专区
其他Cortex系列
uCOS & uCGUI & Emwin
trochili(飞鸟)操作系统
中国RTOS联盟
FPGA/CPLD/DSP专区
数字,模拟,高频电路
编程语言学习
蓝牙/WIFI/Zigbee等通信技术
开发工具专栏
UOL 单片机面向对象语言
DIY大赛专区
DIY项目资料专区
论坛建设区
二手交易专栏
& 开源电子网() |单片机的定时器功能来产生稳定的PWM(40Hz)脉冲波,12M程序最好文字说明下_百度知道
单片机的定时器功能来产生稳定的PWM(40Hz)脉冲波,12M程序最好文字说明下
#include &reg52.h&unsigned char timer1; sbit PWM=P1^2;void system_Ini(){
TMOD|= 0x11; //PWM
TH1 = 0 //11.0592 TL1 = 0x33; TR1
IE =0x8A; } main(){
system_Ini();
{ if(timer1&100) timer1=0;
if(timer1&30) PWM=0;
else PWM=1;
}}/************************************* [ t1 (0.5ms)中断] 中断中做 PWM 输出
------------ms*250)=200Hz*************************************/void T1zd(void) interrupt 3
//3 为定时器1的中断号
1 定时器0的中断号 0 外部中断1 2 外部中断2
4 串口中断{ TH1 = 0 //11.0592 TL1 = 0x33;
}稍微改一下就行了
其他类似问题
脉冲波的相关知识
按默认排序
其他1条回答
继续签到!!!!!!!鄙视伸手党!!!!!!!!!!这种东西又不是很难,自己翻翻书,不过20来行代码,有什么难度么?
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 duty cycle 的文章

 

随机推荐