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

PWM波形时段时续?HAL库生产代码有问题? 没改任何地方

[复制链接]
weesky07 提问时间:2019-2-10 11:54 /
  1. static void MX_TIM2_Init(void)
  2. {

  3.   /* USER CODE BEGIN TIM2_Init 0 */

  4.   /* USER CODE END TIM2_Init 0 */

  5.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  6.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  7.   TIM_OC_InitTypeDef sConfigOC = {0};

  8.   /* USER CODE BEGIN TIM2_Init 1 */

  9.   /* USER CODE END TIM2_Init 1 */
  10.   htim2.Instance = TIM2;
  11. htim2.Init.Prescaler = 29;
  12.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  13. htim2.Init.Period = 999;
  14.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  15.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  16.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
  17.   {
  18.     Error_Handler();
  19.   }
  20.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  21.   if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
  22.   {
  23.     Error_Handler();
  24.   }
  25.   if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
  26.   {
  27.     Error_Handler();
  28.   }
  29.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  30.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  31.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  32.   {
  33.     Error_Handler();
  34.   }
  35.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  36. sConfigOC.Pulse = 980;
  37.   sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW;
  38.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  39.   if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  40.   {
  41.     Error_Handler();
  42.   }
  43.   /* USER CODE BEGIN TIM2_Init 2 */

  44.         HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
  45.         
  46.         
  47.   /* USER CODE END TIM2_Init 2 */
  48.   HAL_TIM_MspPostInit(&htim2);

  49. }
复制代码
QQ图片20190210115526.jpg 2019-2-10 12-07-38.png

收藏 评论6 发布时间:2019-2-10 11:54

举报

6个回答
weesky07 回答时间:2019-2-10 12:06:07
使用的是战舰版V3 STM32F103ZET6 MCU
weesky07 回答时间:2019-2-10 12:07:04
把Pluse值设置的小一些,比如800,这个波形就是连续的了。非常奇怪,第一次用。
wenyangzeng 回答时间:2019-2-10 14:37:40
1、pluse的值必须比Period的值小才满足PWM输出条件的。
2、貌似未使能PWM输出:HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

GKoSon 回答时间:2019-2-10 18:20:58
wenyangzeng 发表于 2019-2-10 14:37
1、pluse的值必须比Period的值小才满足PWM输出条件的。
2、貌似未使能PWM输出:HAL_TIM_PWM_Start(&htim2,  ...

50行有  HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
他这个问题 可能是你的第一句话
定时器的2个参数
GKoSon 回答时间:2019-2-10 18:26:23
weesky07 发表于 2019-2-10 12:07
把Pluse值设置的小一些,比如800,这个波形就是连续的了。非常奇怪,第一次用。 ...

我一直是默认的 0
weesky07 回答时间:2019-2-11 09:55:49
问题解决了,HAL库没问题,我用软件仿真模拟都正常,是示波器的问题。示波器时间开的太长了。所以会这样。我用其他频率源试验了,也是这样。

所属标签

相似问题

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