你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

没有PWM输出

[复制链接]
陆少杰 提问时间:2016-10-29 16:09 /
本帖最后由 ttl_web 于 2016-11-1 16:36 编辑

请教以下代码,始终无法看到PWM输出
  1. //问题:没PWM输出
  2. //TIM3产生1路PWM
  3. //stm32f103vet6

  4. #include "stm32f10x.h"
  5. void RCC_conf()
  6. {
  7.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  8.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
  9.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  10. }
  11. void GPIO_conf()
  12. {
  13.         GPIO_InitTypeDef GPIO_InitStructure;        
  14.         
  15.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
  16.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
  17.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  18.         GPIO_Init(GPIOC,&GPIO_InitStructure);
  19.         
  20. }
  21. void TIM3_conf() {
  22.         TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  23.         TIM_OCInitTypeDef TIM_OCInitStructure;
  24.         
  25.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);
  26.         
  27.         TIM_TimeBaseStructure.TIM_Period=900-1;
  28.         TIM_TimeBaseStructure.TIM_Prescaler=0;
  29.         TIM_TimeBaseStructure.TIM_ClockDivision=0;
  30.         TIM_TimeBaseStructure.TIM_CounterMode=
  31.                 TIM_CounterMode_Up;
  32.         TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
  33.         
  34.         TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
  35.         TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
  36.         TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
  37.         TIM_OC1Init(TIM3,&TIM_OCInitStructure);        
  38.         TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);
  39.         
  40.         TIM_Cmd(TIM3,ENABLE);        
  41. }

  42. int main()
  43. {
  44.         //SystemInit();
  45.         RCC_conf();
  46.         GPIO_conf();
  47.         TIM3_conf();

  48.         while (1)
  49.         {
  50.                
  51.         }
  52. }
复制代码

LED原理图

LED原理图
收藏 2 评论11 发布时间:2016-10-29 16:09

举报

11个回答
andrewz 回答时间:2016-10-29 19:06:30
有个MOE位不知道LZ用了没?



st.png
peter001 回答时间:2016-10-30 03:19:56
跟踪一下,看看是不是gpio模式不对
haifeng-388081 回答时间:2016-10-30 12:12:26
用示波器看看。
samhong 回答时间:2016-10-31 00:30:34
签到,好多内容,谢谢!
空白 回答时间:2016-10-31 08:54:21
你都没有给TIM3->CCR1赋值 ,当然没有东西输出了。
陆少杰 回答时间:2016-10-31 11:34:52
jackeyt 发表于 2016-10-31 08:54
你都没有给TIM3->CCR1赋值 ,当然没有东西输出了。

CREN 已使能
陆少杰 回答时间:2016-10-31 14:26:23
//已看到PWM

  1. //TIM3产生1路PWM
  2. //stm32f103vet6

  3. #include "stm32f10x.h"
  4. void RCC_conf()
  5. {
  6.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  7.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
  8.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
  9. }
  10. void GPIO_conf()
  11. {
  12.         GPIO_InitTypeDef GPIO_InitStructure;       
  13.        
  14.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
  15.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
  16.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  17.         GPIO_Init(GPIOC,&GPIO_InitStructure);
  18.        
  19. }
  20. void TIM3_conf() {
  21.         TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  22.         TIM_OCInitTypeDef TIM_OCInitStructure;
  23.        
  24.         GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);
  25.        
  26.         TIM_TimeBaseStructure.TIM_Period=900-1;
  27.         TIM_TimeBaseStructure.TIM_Prescaler=0;
  28.         TIM_TimeBaseStructure.TIM_ClockDivision=0;
  29.         TIM_TimeBaseStructure.TIM_CounterMode=
  30.                 TIM_CounterMode_Up;
  31.         TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
  32.        
  33.         TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
  34.         TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
  35.         TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
  36.         TIM_OCInitStructure.TIM_Pulse=100;
  37.         TIM_OC1Init(TIM3,&TIM_OCInitStructure);       
  38.         TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);
  39.         TIM_ARRPreloadConfig(TIM3,ENABLE);
  40.         TIM_Cmd(TIM3,ENABLE);       
  41. }

  42. int main()
  43. {
  44.         //SystemInit();
  45.         RCC_conf();
  46.         GPIO_conf();
  47.         TIM3_conf();

  48.         while (1)
  49.         {
  50.                
  51.         }
  52. }
复制代码
陆少杰 回答时间:2016-10-31 14:28:06
jackeyt 发表于 2016-10-31 08:54
你都没有给TIM3->CCR1赋值 ,当然没有东西输出了。

谢谢点拨
xhzheng 回答时间:2016-10-31 16:59:02
限流电阻太大了吧,即使有,也看不清楚;
直接短路1K电阻看看,可以直接驱动LED的;

xhzheng 回答时间:2016-10-31 17:02:11
看看我之前发的帖子吧,可以正常输出可调PWM的;
https://www.stmcu.org.cn/module/forum/thread-608340-1-1.html
zbber 回答时间:2016-10-31 17:39:18
感恩无私的分享与奉献

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版