OpenEdv-开源电子网

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

用定时器3控制输出两路pwm,请问是这样设置的吗?

[复制链接]

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
发表于 2014-12-12 21:34:31 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]void TIM3_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //TIM_CH2 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_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_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_OC1Init(TIM3, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_Cmd(TIM3, ENABLE); }[/mw_shl_code]

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

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-12 22:11:29 | 显示全部楼层
int main(void)
 {
  u16 led0pwmval=0;
u8 dir=1;
delay_init();       //???±??????????   
//NVIC_Configuration();   //?è??NVIC????·?×é2:2??????????????2???ì????????
//uart_init(9600);  //????????????9600
  LED_Init();      //LED??????????
  TIM3_PWM_Init(899,0);  //??·?????PWM????=72000/900=8Khz
    while(1)
{
  delay_ms(10);  //?????????§??
if(dir)led0pwmval++;
else led0pwmval--;

  if(led0pwmval>300)dir=0;
if(led0pwmval==0)dir=1;
//led0pwmval = 500;
TIM_SetCompare2(TIM3,led0pwmval);   
TIM_SetCompare1(TIM3,led0pwmval);
}  
 }
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-12 22:12:21 | 显示全部楼层
回复【2楼】Lemon:
---------------------------------
这是主函数,路过的求解答啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-12 22:12:50 | 显示全部楼层
是不是的问题,楼主自己下载验证。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-12 22:19:23 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
仿真的时候PB5和PB4的pwm输出一样,PB5直接在板子上的LED0有呼吸灯效果,但是PB4自己接出来接一个小的LED到地,然后就一直亮,看不出呼吸效果。什么原因?还有IO输出最大电压是多少?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-12 22:47:24 | 显示全部楼层
PB5接你这个小小的LED呢?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-12 23:07:48 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
从PB4拔下接到PB5的时候灯更亮了,为什么?仿真的时候不是一样吗?
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-12 23:10:57 | 显示全部楼层
求指点

PWM.uvproj

17.4 KB, 下载次数: 53

回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-12 23:11:30 | 显示全部楼层
回复【8楼】Lemon:
---------------------------------
这是源码
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2014-12-12 23:17:39 | 显示全部楼层
回复【5楼】Lemon:
---------------------------------
使用PB4的时候  也要不要先屏蔽掉 JTAG 模式呢
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-13 23:03:58 | 显示全部楼层
回复【10楼】lycreturn:
---------------------------------
没有使用JTAG模式啊。能看一下我的程序吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-14 11:06:47 | 显示全部楼层
回复【7楼】Lemon:
---------------------------------
我是说直接PB4接你PB5的小灯,然后PB5不要连接到这个小灯。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-16 00:13:24 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
现在的情况是用线把PB5接出来连的这个小灯和开发板上的LED0有同样的效果了(呼吸灯),但是连到PB4就一直是高电平(不亮)。求解是不是哪里设置错了?
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-16 00:15:11 | 显示全部楼层

0.0
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-16 00:18:22 | 显示全部楼层

0.0
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-16 23:29:37 | 显示全部楼层
回复【13楼】Lemon:
---------------------------------
那就肯定是哪里设置有问题了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-12-5
在线时间
1 小时
 楼主| 发表于 2014-12-17 13:22:32 | 显示全部楼层
回复【16楼】正点原子:
---------------------------------
不映射的时候(PA6.7可以输出pwm)和部分映射的时候(PB5.0.1都出pwm)和完全重映射的时候也输出pwm,就是部分的时候PB4死活不出pwm。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 19:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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