OpenEdv-开源电子网

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

pwm实验,实现LED0亮灭,现象LED0先暗后亮

[复制链接]

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2020-5-19
在线时间
16 小时
发表于 2020-5-23 12:24:45 | 显示全部楼层 |阅读模式
2金钱
我改了下实验,想实现LED0先亮2秒,后灭4秒,依次循环;
但是代码下载后,现象为LED0先灭4秒,后亮2秒,依次循环。

tim14.c文件代码如下:
#include "sys.h"
#include "tim14.h"
void TIM14_Init(u16 rload, u16 pre)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);

GPIO_PinAFConfig(GPIOF, GPIO_PinSource9, GPIO_AF_TIM14);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_High_Speed;
GPIO_Init(GPIOF, &GPIO_InitStructure);

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数
TIM_TimeBaseStructure.TIM_Period = rload;
TIM_TimeBaseStructure.TIM_Prescaler = pre;
TIM_TimeBaseInit(TIM14, &TIM_TimeBaseStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//配置为PWM1模式,低于crr为有效
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//有效电平为低电平
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OC1Init(TIM14, &TIM_OCInitStructure);

TIM_ARRPreloadConfig(TIM14, ENABLE);
TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);

TIM_Cmd(TIM14, ENABLE);

}

主函数:
int main(void)
{

TIM14_Init(60000-1, 8400-1);//一个周期为6s
TIM_SetCompare1(TIM14, 20000);
  while(1) {

}
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2018-12-27
在线时间
0 小时
发表于 2020-5-23 12:44:18 | 显示全部楼层
帮顶!!!!!!!!!!!!!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-5-24 01:19:51 | 显示全部楼层
改下输出极性即可
回复

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2020-5-19
在线时间
16 小时
 楼主| 发表于 2020-5-24 20:18:40 | 显示全部楼层

关键是我输出极性设置的是先亮后灭
为什么会出现先灭后亮
回复

使用道具 举报

1

主题

20

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2020-5-12
在线时间
13 小时
发表于 2020-5-25 17:44:39 | 显示全部楼层
王观龙 发表于 2020-5-24 20:18
关键是我输出极性设置的是先亮后灭
为什么会出现先灭后亮

你看你原理图LED0是高电平有效还是低电平有效啊
回复

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2020-5-19
在线时间
16 小时
 楼主| 发表于 2020-5-26 19:27:45 | 显示全部楼层
otto1 发表于 2020-5-25 17:44
你看你原理图LED0是高电平有效还是低电平有效啊

低电平电亮LED小灯,就是原子哥f407的板子
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2020-4-11
在线时间
3 小时
发表于 2020-5-29 14:34:07 | 显示全部楼层
将pwm的占空比换成互补的就好了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-5-30 01:25:49 | 显示全部楼层
王观龙 发表于 2020-5-24 20:18
关键是我输出极性设置的是先亮后灭
为什么会出现先灭后亮

说明你理解有误。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-1 14:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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