打印
[STM32F1]

程序刚烧进去的时候工作了一个周期

[复制链接]
347|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pengf|  楼主 | 2020-5-19 22:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
模仿网上的程序写了一个输出一路pwm,示波器显示pwm输出正常。但控制电机时,电机只在程序刚烧进去的时候工作了一个周期吧。后面就没反应了

使用特权

评论回复
沙发
liuzaiy| | 2020-5-19 22:07 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
pengf|  楼主 | 2020-5-19 22:10 | 只看该作者
#include "pwm.h"

/*******************************************************************************
* º¯ Êý Ãû         : pwm_init
* º¯Êý¹¦ÄÜ                   : IO¶Ë¿Ú¼°TIM3³õʼ»¯º¯Êý           
* Êä    Èë         : ÎÞ
* Êä    ³ö         : ÎÞ
*******************************************************************************/
void pwm_init()
{
        GPIO_InitTypeDef GPIO_InitStructure;   //ÉùÃ÷Ò»¸ö½á¹¹Ìå±äÁ¿£¬ÓÃÀ´³õʼ»¯GPIO

        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;//ÉùÃ÷Ò»¸ö½á¹¹Ìå±äÁ¿£¬ÓÃÀ´³õʼ»¯¶¨Ê±Æ÷

        TIM_OCInitTypeDef TIM_OCInitStructure;//¸ù¾ÝTIM_OCInitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIMx

        /* ¿ªÆôʱÖÓ */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//ledʱÖÓ
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//¶¨Ê±Æ÷3ʱÖÓ
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//pwm¹Ü½Å¸´ÓÃʱÖÓ

        /*  ÅäÖÃGPIOµÄģʽºÍIO¿Ú */
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//¸´ÓÃÍÆÍìÊä³ö£¨Êä³öpwmÒª²ÉÓø´ÓÃÍÆÍ죩
        GPIO_Init(GPIOC,&GPIO_InitStructure);


        //TIM3¶¨Ê±Æ÷³õʼ»¯
        TIM_TimeBaseInitStructure.TIM_Period = 900;           //²»·ÖƵ,PWM ƵÂÊ=72000/900=8Khz//ÉèÖÃ×Ô¶¯ÖØ×°ÔؼĴæÆ÷ÖÜÆÚµÄÖµ
        TIM_TimeBaseInitStructure.TIM_Prescaler = 0;//ÉèÖÃÓÃÀ´×÷ΪTIMxʱÖÓƵÂÊÔ¤·ÖƵֵ£¬100Khz¼ÆÊýƵÂÊ
        TIM_TimeBaseInitStructure.TIM_ClockDivision = 0;//ÉèÖÃʱÖÓ·Ö¸î:TDTS = Tck_tim
        TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;        //TIMÏòÉϼÆÊýģʽ
        TIM_TimeBaseInit(TIM3, & TIM_TimeBaseInitStructure);

        GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);//¸Ä±äÖ¸¶¨¹Ü½ÅµÄÓ³Éä        //pC7

        //PWM³õʼ»¯          //¸ù¾ÝTIM_OCInitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIMx
        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;//pwmģʽ
        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//PWMÊä³öʹÄÜ
        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//Êä³ö¼«ÐÔ
        TIM_OC2Init(TIM3,&TIM_OCInitStructure);
        //×¢Òâ´Ë´¦³õʼ»¯Ê±TIM_OC2Init¶ø²»ÊÇTIM_OCInit£¬·ñÔò»á³ö´í¡£ÒòΪ¹Ì¼þ¿âµÄ°æ±¾²»Ò»Ñù¡£

        TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);//ʹÄÜ»òÕßʧÄÜTIMxÔÚCCR2ÉϵÄԤװÔؼĴæÆ÷
        
        TIM_Cmd(TIM3,ENABLE);//ʹÄÜ»òÕßʧÄÜTIMxÍâÉè
}
int main()
{
  u32 ti=400;
        pwm_init();         //PWM³õʼ»¯

               
         TIM_SetCompare2(TIM3,ti);//½«tiÖµ·ÅÈëTIM_CCRxÀï
  while(1)
        {
        
        
        
        }



}

使用特权

评论回复
地板
yufe| | 2020-5-19 22:13 | 只看该作者
PWM正常说明软件问题不大,是电机干扰让MCU死机吧?上电路图

使用特权

评论回复
5
langgq| | 2020-5-19 22:18 | 只看该作者
做隔离了没?

使用特权

评论回复
6
zhanglli| | 2020-5-19 22:23 | 只看该作者
能给我一个stm32F103系统带霍尔的方波控制代码吗?6步法即可

使用特权

评论回复
7
huwr| | 2020-5-19 22:25 | 只看该作者
你这是什么电机呢

使用特权

评论回复
8
happy_10| | 2020-5-19 22:29 | 只看该作者
找到原因了吗

使用特权

评论回复
9
songqian17| | 2020-5-19 22:35 | 只看该作者
一堆乱码啊。输出神马波形吗

使用特权

评论回复
10
houcs| | 2020-5-19 22:38 | 只看该作者

看下波形啊?是不是代码问题

使用特权

评论回复
11
pengf|  楼主 | 2020-5-19 22:41 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
12
kcfoo1| | 2020-5-21 10:01 | 只看该作者
只有一路pwm,难道是有刷电机?还是无刷用一路pwm控制?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝