f81190865 发表于 2015-1-6 18:24:02

stephenking 发表于 2013-9-11 20:26
可以选择使用DMA来控制发送的脉冲数,最大可以65535个。如果你的脉冲宽度一致,则DMA地址不增加的方式传输 ...

谢谢~,请问实现过吗?

liuzhonghui520 发表于 2015-1-7 23:03:30

关注中!!!:)

翱翔云端的鸟 发表于 2015-1-23 15:59:42

王建 发表于 2014-12-17 13:07
我测试用STM32F103C8发出两路PWM,一路200KHz,另外一路150KHz,这两路频率都是固定的,同时以位置控制的模 ...

你是怎么实现控制PWM个数的呢?

数码小叶 发表于 2015-1-23 17:48:18

学习学习,不太懂

hanmcustm 发表于 2015-1-24 00:03:31

楼主有可实现的方法么

wjandsq 发表于 2015-1-25 21:40:01

理论上是可行的,实际上的代码需要花费时间调试,精确控制脉冲个数的代码也都是公开的,但不在这个网站。

stary666 发表于 2015-1-28 12:33:19

理论上是可行的,实际上的代码需要花费时间调试

wjandsq 发表于 2015-1-28 17:04:29

uint16_t SRC_Buffer = {
180, 180, 180, 180, 180, /* 1 */
180, 180, 180, 180, 180, /* 2 */
180, 180, 180, 180, 180, /* 3 */
180, 180, 180, 180, 180, /* 4 */
};

uint16_t SRC_Buffer2 = {
120, 120, 120, 120, /* 1 */
120, 120, 120, 120, /* 2 */
120, 120, 120, 120, /* 3 */
120, 120, 120, 120, /* 4 */
120, 120, 120, 120, /* 5 */
120, 120, 180, 120, /* 6 */
120, 120, 120, 120, /* 7 */
120, 120, 120, 120, /* 8 */
};

/* TIM1_CH3 PWM --------------------------------------------------------------*/
/* DMA1_Channel5_Total: DMA传输次数,每次传输发送20个脉冲(200KHz,总计100us) */
uint16_t DMA1_Channel5_Total = 0;
/* Flag_DMA1_Channel5_Sart: DMA启动标志,启动后清零 */
uint16_t Flag_DMA1_Channel5_Sart = 0;
/* Flag_TIM1_PWM3_Finish: TIM1_PWM3发送完毕标志,启动后清零,完成后置位 */
uint16_t Flag_TIM1_PWM3_Finish = 1;
/* Select_Motor_Driect: 选档电机运动方向 1: 正转 0: 反转 */
uint16_t Select_Motor_Driect = 1;

/* TIM3_CH1 PWM -----------------------------------------------------------*/
/* DMA1_Channel3_Total: DMA传输次数,每次传输发送20个脉冲(300KHz,总计100us) */
uint16_t DMA1_Channel3_Total = 0;
/* Flag_DMA1_Channel3_Sart: DMA启动标志,启动后清零 */
uint16_t Flag_DMA1_Channel3_Sart = 0;
/* Flag_TIM1_PWM3_Finish: TIM1_PWM3发送完毕标志,启动后清零,完成后置位 */
uint16_t Flag_TIM3_PWM1_Finish = 1;
/* SWitch_Motor_Driect: 换档电机运动方向 1: 正转 0: 反转 */
uint16_t Switch_Motor_Driect = 1;

斯普朗特 发表于 2015-1-30 14:11:31

请问STM32F4的PWM输出是和F103一样给定了时钟通道挂接的GPIO端口,还是可以自己随便设呢?

xiaodc88 发表于 2015-1-30 16:48:57

没想到好方法,所以精确控制一般没用PWM
页: 1 [2] 3 4
查看完整版本: 关于STM32输出精确PWM脉冲数的方法?