OpenEdv-开源电子网

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

PWM输出实验中,呼吸灯问题

[复制链接]

18

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2015-9-15
在线时间
98 小时
发表于 2015-9-15 21:05:40 | 显示全部楼层 |阅读模式
5金钱
例子是实现的DS0实现呼吸灯效果,我想知道能不能同时让两个灯都实现呼吸灯效果。TIM3通道2的部分重映射后正好是LED0的端口,而通道1确是在PB4。LED1端口在PE5.

最佳答案

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

回复【3楼】weewwewe: --------------------------------- 用PB4, 先禁止掉JTAG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5787
金钱
5787
注册时间
2013-11-22
在线时间
1213 小时
发表于 2015-9-15 21:05:41 | 显示全部楼层
回复【3楼】weewwewe:
---------------------------------
用PB4, 先禁止掉JTAG
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5787
金钱
5787
注册时间
2013-11-22
在线时间
1213 小时
发表于 2015-9-15 23:27:17 | 显示全部楼层
PE5 不能输出PWM, 想要LED1用作呼吸灯, 可以用杜邦线连接PE5到一个能输出PWM的端口, 然后PE5设置为浮空输入
回复

使用道具 举报

18

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2015-9-15
在线时间
98 小时
 楼主| 发表于 2015-9-16 08:07:06 | 显示全部楼层
回复【2楼】lycreturn:
---------------------------------
谢谢你的回答哈,我看了下,部分重映射后,tim3通道一在PB4.我就用线连接PB4和PE5.
#include"led.h"
#include"pwm.h"
void TIM3_PWM_Init(u16 arr,u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);


TIM_TimeBaseStructure.TIM_Period=arr;
TIM_TimeBaseStructure.TIM_Prescaler=psc;
TIM_TimeBaseStructure.TIM_ClockDivision=0;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;

TIM_OC1Init(TIM3,&TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);

TIM_OC2Init(TIM3,&TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_Cmd(TIM3,ENABLE);
}

int main(void)
{
u16 pwmval=0;
u8 we=1;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
LED_Init();
TIM3_PWM_Init(899,0);
while(1)

delay_ms(5);
  if(we)pwmval++;
else pwmval--;
if(pwmval>300)we=0;
if(pwmval==0)we=1;
TIM_SetCompare1(TIM3,pwmval);
TIM_SetCompare2(TIM3,pwmval);
}

}
然后在LED初始化时,设置了PE5为浮空输入。还是不行,你看看问题在哪儿呢?
回复

使用道具 举报

18

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2015-9-15
在线时间
98 小时
 楼主| 发表于 2015-9-16 10:10:20 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
恩恩,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-19 17:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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