专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM8输出PWM波驱动步进电机,出现了很奇葩的问题。
2019-07-19 20:31
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
13509
4
1192
程序如下:
//S加速
int value4[]={
20000,
19940,
19880,
19810,
19740,
19670,
19590,
19510,
19430,
19340,
19250,
19160,
19060,
18960,
18850,
18740,
18630,
18510,
18390,
18270,
18140,
18000,
17860,
17720,
17570,
17420,
17260,
17100,
16930,
16760,
16580,
16400,
16220,
16030,
15830,
15630,
15430,
15230,
15020,
14800,
14580,
14360,
14140,
13910,
13680,
13450,
13220,
12980,
12740,
12500,
12260,
12020,
11780,
11540,
11300,
11060,
10820,
10580,
10340,
10110,
9870,
9640,
9410,
9180,
8960,
8740,
8520,
8300,
8090,
7890,
7680,
7480,
7290,
7100,
6910,
6730,
6560,
6380,
6220,
6050,
5900,
5740,
5590,
5450,
5310,
5170,
5040,
4920,
4790,
4680,
4560,
4450,
4350,
4250,
4150,
4050,
3960,
3880,
3790,
3710,
3640,
3560,
3490,
3420,
3360,
3300,
3240,
3180,
3120,
3070,
3020,
2970,
2930,
2890,
2840,
2800,
2770,
2730,
2690,
2660,
2630,
2600,
2570,
2540,
2520,
2490,
2470,
2440,
2420,
2400,
2380,
2360,
2340,
2330,
2310,
2300,
2280,
2270,
2250,
2240,
2230,
2220,
2210,
2200,
2190,
2180,
2170,
2160,
2150,
2140,
2130,
2130,
2120,
2110,
2110,
2100,
2100,
2090,
2090,
2080,
2080,
2070,
2070,
2060,
2060,
2060,
2050,
2050,
2050,
2040,
2040,
2040,
2040,
2030,
2030,
2030,
2030,
2030,
2020,
2020,
2020,
2020,
2020,
2020,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2000,
2000,
2000,
2000,
2000,
2000,
2000
};
//S减速
int value5[]={
2000,
2000,
2000,
2000,
2000,
2000,
2000,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2010,
2020,
2020,
2020,
2020,
2020,
2020,
2030,
2030,
2030,
2030,
2030,
2040,
2040,
2040,
2040,
2050,
2050,
2050,
2060,
2060,
2060,
2070,
2070,
2080,
2080,
2090,
2090,
2100,
2100,
2110,
2110,
2120,
2130,
2130,
2140,
2150,
2160,
2170,
2180,
2190,
2200,
2210,
2220,
2230,
2240,
2250,
2270,
2280,
2300,
2310,
2330,
2340,
2360,
2380,
2400,
2420,
2440,
2470,
2490,
2520,
2540,
2570,
2600,
2630,
2660,
2690,
2730,
2770,
2800,
2840,
2890,
2930,
2970,
3020,
3070,
3120,
3180,
3240,
3300,
3360,
3420,
3490,
3560,
3640,
3710,
3790,
3880,
3960,
4050,
4150,
4250,
4350,
4450,
4560,
4680,
4790,
4920,
5040,
5170,
5310,
5450,
5590,
5740,
5900,
6050,
6220,
6380,
6560,
6730,
6910,
7100,
7290,
7480,
7680,
7890,
8090,
8300,
8520,
8740,
8960,
9180,
9410,
9640,
9870,
10110,
10340,
10580,
10820,
11060,
11300,
11540,
11780,
12020,
12260,
12500,
12740,
12980,
13220,
13450,
13680,
13910,
14140,
14360,
14580,
14800,
15020,
15230,
15430,
15630,
15830,
16030,
16220,
16400,
16580,
16760,
16930,
17100,
17260,
17420,
17570,
17720,
17860,
18000,
18140,
18270,
18390,
18510,
18630,
18740,
18850,
18960,
19060,
19160,
19250,
19340,
19430,
19510,
19590,
19670,
19740,
19810,
19880,
19940,
20000};
/* 主函数 */
int main(void)
{
u16 i;
//内部时钟为1分频 = 16Mhz
CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
delay(2000);
qudong_Init();
GPIO_WriteHigh(GPIOE, GPIO_PIN_0); //FREE = 1
GPIO_WriteLow (GPIOC, GPIO_PIN_1); //DIR = 0
TIM3_Cmd(ENABLE);
delay(400);
while(1)
{
TIM3_TimeBaseInit(TIM3_PRESCALER_1,value4[0] ); //16M进行1分频,
TIM3_OC2Init(TIM3_OCMODE_PWM2, TIM3_OUTPUTSTATE_ENABLE,value4[0]/2 , TIM3_OCPOLARITY_LOW);
delay(2000);
for(i=0;i<=200;i++)
{
TIM3_TimeBaseInit(TIM3_PRESCALER_1,value4 ); //16M进行1分频,
TIM3_OC2Init(TIM3_OCMODE_PWM2, TIM3_OUTPUTSTATE_ENABLE,value4/2 , TIM3_OCPOLARITY_LOW);
delay(50);
}
delay(5000);
delay(5000);
delay(5000);
delay(5000);
//减速
for(i=0;i<=200;i++)
{
TIM3_TimeBaseInit(TIM3_PRESCALER_1,value5 ); //16M进行1分频,
TIM3_OC2Init(TIM3_OCMODE_PWM2, TIM3_OUTPUTSTATE_ENABLE,value5/2 , TIM3_OCPOLARITY_LOW);
delay(50);
}
//240RPM
TIM3_TimeBaseInit(TIM3_PRESCALER_1,value4[0] ); //16M进行1分频,
TIM3_OC2Init(TIM3_OCMODE_PWM2, TIM3_OUTPUTSTATE_ENABLE,value4[0]/2 , TIM3_OCPOLARITY_LOW);
delay(5000);
delay(5000);
delay(5000);
}
//while(1);
}
启动后,电机以240RPM转动,然后加速到2400RPM,后又降到240RPM,依此循环。
现在问题是在while循环里,循环第四次时加速过程中电机卡住,给STM8S复位又可以恢复,但仍是第四次卡住,因此很不理解,我实验了十多次了,都是第四次卡住。
电机有森创的两种,都是42系列,两相的,42BYG250CK-B,42BYG250BK,都是24V,1.5A,还有一款市场随便买的,没签。这三种电机都是在循环第四次时卡住。
驱动器是森创的,无细分,电流2.1A,后续会自己设计驱动
芯片
,缩小空间。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
jnan1397
2019-07-19 22:34
精彩回答 2 元偷偷看……
0人看过
加载中...
查看其它4个回答
一周热门
更多
>
相关问题
相关文章
嵌入式编译生成的HEX文件和BIN文件内容详解
0个评论
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
单片机中把部分Flash虚拟成Eeprom使用时,如何延长使用寿命
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
敢问路在何方,STM32迈出的第一步,却注定了它非凡的一生
0个评论
年工作时间真的就等于3年工作经验?也许你就不配
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一周热门 更多>