电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
STM32F103C8T6 RTOS + 定时器PWM失效
已解决
73482
个问题
已帮助
5993
位优秀工程师
STM32F103C8T6 RTOS + 定时器PWM失效
lixiang
2021-03-01
浏览量:997
请教各位一个问题
代码使用RTOS(UCOSII + 定时器PWM) 控制电机.
但是发现一个奇怪的想象在调用后发现有时候函数执行完毕没有任何反应使用示波器测量后发现未产生PWM.
代码如下:
GPIO_InitTypeDef GPIO_InitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
cpu_sr = OS_CPU_SR_Save();
GPIO_InitStructure.GPIO_Pin = xxxxx;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(xxxxx &GPIO_InitStructure);
GPIO_ResetBits(xxxxx xxxxx);
GPIO_InitStructure.GPIO_Pin = xxxxx;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(xxxxx &GPIO_InitStructure);
TIM_Cmd(TIM4 DISABLE);
TIM_OC1PreloadConfig(TIM4 TIM_OCPreload_Enable);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCPolarity_Low;
TIM_OCInitStructure.TIM_Pulse = 500;
TIM_OC2Init(TIM4 &TIM_OCInitStructure);
TIM4->EGR = TIM_PSCReloadMode_Immediate;
TIM_Cmd(TIM4 ENABLE);
OS_CPU_SR_Restore(cpu_sr);
m data-ke-on
click="copycode($('code_imF'));">复制代码
目前在不停的测试中发现几点:
1. 如果更改优化等级的话会生效但是其他的函数又会出现问题.
2. 目前如果不使用PWM一切正常函数调用也正常.
3. 定时器使用的1K频率.
想请问下各位是不是哪里弄错了?
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
yhj416606438
那就是编译器优化导致的,把优化等级改最低,还有你可以做个实验,在初始化后不要运行其他任务看看还正常吗,排除问题
发布于
2021-03-01
举报
评论 0
0
0
其他答案
数量:
4
xbk_499273
可以对编译器进行设置,达到想要的效果
发布于
2021-03-01
举报
评论 0
0
0
xbk_490753
把电机设置进行初始化
发布于
2021-03-01
举报
评论 0
0
0
细风
TIM4 的初始化是不是有问题?
发布于
2021-03-02
举报
评论 0
0
0
莱克迷KW
PWM用的是哪个定时器,是不是与RTOS时基的定时器冲突了
发布于
2021-03-11
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
STM32F103C8T6 RTOS + 定时器PWM失效
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: