OpenEdv-开源电子网

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

STM32 M0内核PWM测试程序 芯片STM32F030F4P6

[复制链接]

19

主题

90

帖子

1

精华

高级会员

Rank: 4

积分
543
金钱
543
注册时间
2012-5-13
在线时间
40 小时
发表于 2014-5-16 12:21:32 | 显示全部楼层 |阅读模式



 可以看到第一幅图片左边的LED亮一些;第二幅图左边的LED暗一些。两幅图右边的指示灯是电源指示灯。由于STM32F030F4P6引脚较少只做了一路PWM输出。其他的输出可以自行扩展。

STM32F030PWM.rar

1.16 MB, 下载次数: 7616

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

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-16 12:31:27 | 显示全部楼层
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-5-16 20:43:09 | 显示全部楼层
谢谢分享...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

40

主题

177

帖子

0

精华

高级会员

Rank: 4

积分
921
金钱
921
注册时间
2013-10-23
在线时间
94 小时
发表于 2014-5-17 18:50:27 | 显示全部楼层

我手头也买了两块楼主的这个板子,还没用过

http://xiaomeige.taobao.com。做最用心的FPGA学习板和教程资料
回复 支持 反对

使用道具 举报

4

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2013-12-27
在线时间
0 小时
发表于 2014-8-20 00:05:52 | 显示全部楼层
好东西,正需要,M0的库函数和之前的有一定的区别,自己弄了个晚上,发现这个我超级高兴,谢谢主楼
回复 支持 反对

使用道具 举报

19

主题

90

帖子

1

精华

高级会员

Rank: 4

积分
543
金钱
543
注册时间
2012-5-13
在线时间
40 小时
 楼主| 发表于 2014-8-21 07:59:35 | 显示全部楼层
回复【5楼】断桥残雪:
---------------------------------
  能帮上你忙最好。大家共同学习共同进步!
回复 支持 反对

使用道具 举报

0

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2013-5-30
在线时间
3 小时
发表于 2014-11-27 23:04:06 | 显示全部楼层
真是太酷了!我正找这个程序呢!谢谢啦!
做自己喜欢做的的事,爱自己所爱的人!
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-4-16
在线时间
13 小时
发表于 2015-12-13 11:32:17 | 显示全部楼层
学习学习,正好要用.
回复 支持 反对

使用道具 举报

7

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2013-8-24
在线时间
16 小时
发表于 2016-1-15 12:39:38 | 显示全部楼层
你好,你的时钟使用外部的还是内部的?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2016-3-15
在线时间
1 小时
发表于 2016-3-17 22:51:25 | 显示全部楼层
太好了  小弟学习中
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-6-23
在线时间
6 小时
发表于 2016-7-6 16:47:36 | 显示全部楼层
你串口用的P2P3还是P9P10?
回复 支持 反对

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
金钱
210
注册时间
2015-10-4
在线时间
34 小时
发表于 2016-8-11 16:43:52 | 显示全部楼层
学习学习!
回复 支持 反对

使用道具 举报

5

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2015-10-30
在线时间
41 小时
发表于 2016-8-21 17:47:24 | 显示全部楼层
讲真:我非常喜欢这个帖子
回复 支持 反对

使用道具 举报

19

主题

90

帖子

1

精华

高级会员

Rank: 4

积分
543
金钱
543
注册时间
2012-5-13
在线时间
40 小时
 楼主| 发表于 2016-10-9 22:38:45 | 显示全部楼层
熊猫仙 发表于 2016-7-6 16:47
你串口用的P2P3还是P9P10?

P9,P10
回复 支持 反对

使用道具 举报

19

主题

90

帖子

1

精华

高级会员

Rank: 4

积分
543
金钱
543
注册时间
2012-5-13
在线时间
40 小时
 楼主| 发表于 2016-10-9 22:40:16 | 显示全部楼层
407741522 发表于 2016-1-15 12:39
你好,你的时钟使用外部的还是内部的?

外部晶振。
回复 支持 反对

使用道具 举报

zoo123 该用户已被删除
发表于 2017-3-7 16:15:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
1
金钱
1
注册时间
2021-12-28
在线时间
0 小时
发表于 2017-3-30 00:58:07 | 显示全部楼层
很好,学习一下。
回复 支持 反对

使用道具 举报

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-8-6
在线时间
6 小时
发表于 2017-7-7 00:00:41 | 显示全部楼层
STM32F030F4P6是否只能输出2路PWM呢?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-8-12
在线时间
0 小时
发表于 2017-8-12 09:41:44 | 显示全部楼层
TIM1,通道一输出PWm,然后TIM3的的通道一捕获,检测PWM频率检测怎通道设置怎么设,大神能不能给个提示
TIM_OCInitStructure.TIM_Pulse = Channel1Pulse;
  TIM_OC1Init(TIM1, &TIM_OCInitStructure);

  
  TIM_Cmd(TIM1, ENABLE);

  /* TIM1 Main Output Enable */
  TIM_CtrlPWMOutputs(TIM1, ENABLE);
  
  TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2);                           //选择TIM3的输入触发源:TIM经滤波定时器输入2
  
  TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);                     //选择从机模式:复位模式
  TIM_SelectMasterSlaveMode(TIM3,TIM_MasterSlaveMode_Enable);        //开启复位模式

  /* TIM enable counter */
  TIM_Cmd(TIM3, ENABLE);                                              //使能TIM计数器

  /* Enable the CC2 Interrupt Request */
  TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE);   
  
  
  
  IC1Value=TIM_GetCapture2(TIM3);
  Paulse=TIM_GetCapture1(TIM3);    //读出捕获值
  
  DutyCycle=Paulse/IC1Value ;    //获取周期
     
  Frequency=SystemCoreClock/IC1Value ;   //获取频率
   
  
   
  TIM_ClearITPendingBit(TIM3,TIM_IT_CC2);



NVIC_InitTypeDef NVIC_InitStructure;
  
  /* 计算在ARR regiter中设置的值,以生成17.57 Khz的信号频率 */
  TimerPeriod = (SystemCoreClock / 17570 ) - 1;      //计算计数值
  
  /* TIM1 clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 , ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  
  TIM_TimeBaseStructure.TIM_Prescaler = 0;     //时钟预分频数
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;   //向上计数模式
  TIM_TimeBaseStructure.TIM_Period = TimerPeriod;       //自动重装载寄存器的值
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;         //定时器分频因子
  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;         
  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

  /* Channel 1, 2, 3 and 4 设置 in PWM 模式 */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;                     //设置工作模式为PWM输出模式
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;          //使能比较匹配输出极性允许OC输出
  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;        //互补输出使能
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;              //极必为负
  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;           //极性为正
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;            //当MOE=0时,如果实现了OC*N,则死区后OC*=1
  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;        // 当MOE=0时,死区后OC*N=1   

  
  /* Time Base configuration */


  TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;                    //选择TIM3第一通道
  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;        //捕获输入上升沿
  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;   //TIM输入1与IC1连
  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;            //TIM捕获在捕获输入上每探测到一个边沿就执行一次
  TIM_ICInitStructure.TIM_ICFilter = 0x0;                         //选择输入比较滤波器0x0

  TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);               

/* 开启TIM3中断,0级占优先*/
  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;                                
  NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

}


  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //GPIO配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

  
  /* GPIOA Configuration: Channel 1, 2, 3 and 4 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                                      //|GPIO_Pin_9 | GPIO_Pin_10;  GPIO_Pin_11;
  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(GPIOA, &GPIO_InitStructure);
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-8-22
在线时间
5 小时
发表于 2019-8-27 18:03:07 | 显示全部楼层
有人用过030这个芯片配合DRV8860驱动电磁阀吗
回复 支持 反对

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6244
金钱
6244
注册时间
2018-6-27
在线时间
534 小时
发表于 2019-9-7 17:47:35 | 显示全部楼层
谢谢分享,学习学习。
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-5-5
在线时间
16 小时
发表于 2019-10-30 11:15:39 | 显示全部楼层
谢谢分享。。。。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-9-30
在线时间
10 小时
发表于 2019-12-4 09:36:36 | 显示全部楼层
有这个芯片 输出pwm的库函数配置吗 急求
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2020-5-15
在线时间
18 小时
发表于 2023-9-20 10:59:01 | 显示全部楼层
感谢 好人一生平安
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 05:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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