OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2409|回复: 13

求助,探索板输出pwm波后电机不转且屏幕会亮

[复制链接]

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
发表于 2017-8-11 15:05:59 | 显示全部楼层 |阅读模式
5金钱
新人,以前是学机械的,虽然看过正点原子的视频自学单片机,但是还是不能解决,请各位帮帮忙
板子是探索版F4,电调是天行者60A,电机是天蝎星的。
用PB15输出高电平,PD12输出pwm波。
电源连好线插好之后,电机不转只会“哔~”的响,而且屏幕会白屏亮起来,在把电调插在板子上之前是不会亮的。


这是pwm波的程序
#include "pwm.h"

void TIM4_PWM_Init(u32 arr,u32 psc)
{

最佳答案

查看完整内容[请看2#楼]

不能了 看探索者的原理图 PB15接的是液晶的BL引脚 用其他的输出通道吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10565
金钱
10565
注册时间
2017-2-18
在线时间
1913 小时
发表于 2017-8-11 15:06:00 | 显示全部楼层
不能了 看探索者的原理图  PB15接的是液晶的BL引脚  用其他的输出通道吧
888.JPG
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
 楼主| 发表于 2017-8-11 15:10:05 | 显示全部楼层
上面程序没发出来
#include "pwm.h"

void TIM4_PWM_Init(u32 arr,u32 psc)
{
               
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);         
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);        
       
        GPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_TIM4);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;           
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;      
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;      
        GPIO_Init(GPIOD,&GPIO_InitStructure);            
          
        TIM_DeInit(TIM4);
        TIM_TimeBaseStructure.TIM_Prescaler=psc;  
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseStructure.TIM_Period=arr;   //×Ô¶ˉÖØ×°ÔØÖμ
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;

        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);
       
                 
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
        TIM_OC1Init(TIM4, &TIM_OCInitStructure);  

        TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);

  TIM_ARRPreloadConfig(TIM4,ENABLE);
       
        TIM_Cmd(TIM4, ENABLE);

                                                                                  
}  


PB15输出高电平的程序
#include "PB15output.h"

void PB15_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;  
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;  
        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;  
        GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;  
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;  
        GPIO_Init(GPIOB,&GPIO_InitStructure);  
       
        GPIO_SetBits(GPIOB,GPIO_Pin_15);
       
}
主程序
#include "stm32f4xx.h"
#include "pwm.h"
#include "PB15output.h"
#include "delay.h"


int main (void)
{
        u16 pwmval=0;
       
        delay_init(168);
       
        GPIO_SetBits(GPIOB,GPIO_Pin_15);
       
        TIM4_PWM_Init(500-1,21-1);        //PWM频率选8kHz是因为电机参数有一行是drive frequency----8kHz
       
        pwmval=300;
        TIM_SetCompare1(TIM4,pwmval);
       
}

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165462
金钱
165462
注册时间
2010-12-1
在线时间
2114 小时
发表于 2017-8-11 23:47:46 | 显示全部楼层
帮顶
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
 楼主| 发表于 2017-8-14 10:07:39 | 显示全部楼层
自己顶一下
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
 楼主| 发表于 2017-8-14 10:11:35 | 显示全部楼层

我想问一下会不会是板子上应该哪个接线帽应该拔掉什么之类的
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-8-14 10:21:33 | 显示全部楼层
本帖最后由 wxjhby 于 2017-8-14 10:24 编辑

加上这句试试 RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO |RCC_APB2Periph_GPIOD ,ENABLE);
回复

使用道具 举报

24

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
212
金钱
212
注册时间
2016-1-15
在线时间
64 小时
发表于 2017-8-14 10:28:00 | 显示全部楼层
用示波器量一下PB15 PD12波形对吗?   
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
 楼主| 发表于 2017-8-14 12:23:40 | 显示全部楼层
wxjhby 发表于 2017-8-14 10:21
加上这句试试 RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO |RCC_APB2Periph_GPIOD ,ENABLE);

APB2里没有AFIO 和GPIOD啊
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-5-31
在线时间
0 小时
发表于 2017-8-14 12:41:57 | 显示全部楼层
可能是频率错了吧,,PWM频率跟电机没有任何关系,只跟电调有关  ,低端电调的PWM频率都是50HZ的,,,     也就是20ms的周期,里面高电平时间是0.5---2.5ms(或者1---2ms)
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-8-14 12:47:51 | 显示全部楼层
活尸化严重 发表于 2017-8-14 12:23
APB2里没有AFIO 和GPIOD啊

哦,我看错芯片了
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
 楼主| 发表于 2017-8-14 14:25:46 | 显示全部楼层

原子哥,我发现PB15一接5V,屏幕就会亮,那我PB15还能用来输出高电平么
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
 楼主| 发表于 2017-8-14 17:01:31 | 显示全部楼层
ylmf56 发表于 2017-8-14 12:41
可能是频率错了吧,,PWM频率跟电机没有任何关系,只跟电调有关  ,低端电调的PWM频率都是50HZ的,,,     也就是 ...

改到50HZ还是不行
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2017-8-11
在线时间
6 小时
 楼主| 发表于 2017-8-14 18:06:25 | 显示全部楼层
peng1554 发表于 2017-8-14 17:45
不能了 看探索者的原理图  PB15接的是液晶的BL引脚  用其他的输出通道吧

谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-20 16:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表