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

TIM1的CH1N通道能单独作为PWM使用码?

[复制链接]
gaobingquan 提问时间:2018-5-31 22:24 /
在使用STM32F407驱动直流电机正反转,能不能使用TIM1的CH1驱动正转,CH1N驱动反转。正转时CH1输出PWM,CH1N脚保持低电平。反转时CH1N输出PWM,CH1脚保持低电平。由于个人水平低,把F4的PDF手册看了好几遍,也没有整明白可不可这样应用。如果可以,这块功能应该怎么实现,请各个大咖指点!
收藏 评论10 发布时间:2018-5-31 22:24

举报

10个回答
feixiang20 回答时间:2018-5-31 22:36:43
可以的吧,内部能生成pwm吗,有输出吗

评分

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

查看全部评分

wenyangzeng 回答时间:2018-6-1 07:28:03
STM32F407必须连接外部驱动缓冲才能够驱动直流电机。直接驱动CPU要烧毁的。

评分

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

查看全部评分

疯de_恒 回答时间:2018-6-1 09:09:58
是可以做到的。只使用该通道的PWM功能,其他不要打开,当做一个普通IO操作即可。

评分

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

查看全部评分

七哥 回答时间:2018-6-1 09:17:43
按理说,应该是可以的,不过没试过。
用户手册仅供参考
傲游截图20180601091108.png

傲游截图20180601091624.png


评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

lvpeng-1619958 回答时间:2018-6-1 09:48:35
肯定是可以的,好像是有几个寄存器位可以控制

评分

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

查看全部评分

Bowen 回答时间:2018-6-1 13:30:15
应该是可以的。不知道驱动电流够不够,我一般都是用驱动芯片控制电机的

评分

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

查看全部评分

gaobingquan 回答时间:2018-6-6 14:38:59
感谢toofree,问题解决,能够实现,下面是实现代码:
                                case 0:        //电机静止
                                        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_2);
                                        HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_2);                       
                                break;
                                       
                                case 1:        //电机正转
                                        sConfig.OCMode = TIM_OCMODE_PWM1;
                                        sConfig.OCPolarity = TIM_OCPOLARITY_HIGH;                //输出极性高电平
                                        sConfig.OCNPolarity = TIM_OCPOLARITY_HIGH;        //输出极性高电平
                                        sConfig.OCFastMode = TIM_OCFAST_DISABLE;
                                        sConfig.OCIdleState = TIM_OCIDLESTATE_RESET;
                                        sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;
                                        sConfig.Pulse = TIMERCOUNTER * speed /100;        //设置通道PWM值
                                        if(HAL_TIM_PWM_ConfigChannel(&htim1, &sConfig, TIM_CHANNEL_2) != HAL_OK)
                                        {
                                                Error_Handler();//Configuration Error
                                        }
                                        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);                               
                                        HAL_TIMEx_PWMN_Stop(&htim1, TIM_CHANNEL_2);               
                                break;
                                       
                                case 2:        //电机反转
                                        sConfig.OCMode = TIM_OCMODE_PWM1;
                                        sConfig.OCPolarity = TIM_OCPOLARITY_HIGH;                //输出极性高电平
                                        sConfig.OCNPolarity = TIM_OCPOLARITY_HIGH;        //输出极性高电平
                                        sConfig.OCFastMode = TIM_OCFAST_DISABLE;
                                        sConfig.OCIdleState = TIM_OCIDLESTATE_RESET;
                                        sConfig.OCNIdleState = TIM_OCNIDLESTATE_RESET;
                                        sConfig.Pulse = TIMERCOUNTER * speed /100;        //设置通道PWM值
                                        if(HAL_TIM_PWM_ConfigChannel(&htim1, &sConfig, TIM_CHANNEL_2) != HAL_OK)
                                        {
                                                Error_Handler();//Configuration Error
                                        }
                                        HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_2);                               
                                        HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);               
                                break;

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

水护士 回答时间:2018-6-7 23:40:29
学习了,正好用到
asdfg221111 回答时间:2018-6-10 08:59:09
直流电机无非就是高低电平的变换,楼主小心,用MCU直接控制不好,最好用一个功率放大电路,个人想法

评分

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

查看全部评分

gaobingquan 回答时间:2018-6-17 22:38:55
各位放心,有专用的驱动IC,单片机GPIO无法直接驱动,电流不够

所属标签

相似问题

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