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

AD控制PWM频率变化

[复制链接]
zp-zou2008 提问时间:2020-1-7 15:07 /
void Init_TIM2(void)
{
unsigned long  num ;
  if ( Voltage_X4K<2376)
  {
    num = 20000 ;
  }
  else if (Voltage_X4K<2376)
  {
    num = 2122;
  }
  else
  {
    num = 20000-8045*Voltage_X4K/8192;
  }

TIM2_TimeBaseInit(TIM2_PRESCALER_2, num);//3770Hz
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE,0, TIM2_OCPOLARITY_HIGH);
TIM2_OC1PreloadConfig(ENABLE);
TIM2_Cmd(ENABLE);
哪位大侠帮我分析下怎么Voltage_X4K变化时 ,num这个变量不变化啊?

收藏 评论7 发布时间:2020-1-7 15:07

举报

7个回答
wenyangzeng 回答时间:2020-1-7 15:19:59
楼主设置两个条件相同的判断如何得到正确的判断结果?
if(Voltage_X4K<2376)
{
}
else
if(Voltage_X4K<2376)
{

}
zp-zou2008 回答时间:2020-1-7 15:39:27
这是打错了,应该后面一个是>19870
zp-zou2008 回答时间:2020-1-7 15:49:05
这里是写错了,应该是>17980
zp-zou2008 回答时间:2020-1-7 16:06:01
是写错了,应该是>19808
zp-zou2008 回答时间:2020-1-7 16:28:30
wenyangzeng 发表于 2020-1-7 15:19
楼主设置两个条件相同的判断如何得到正确的判断结果?
if(Voltage_X4K

但是我现在改成>19808,结果也是一样的
zp-zou2008 回答时间:2020-1-7 17:36:25
void Init_TIM2(void)
{
unsigned long  num ;

num = Voltage_X4K;


TIM2_TimeBaseInit(TIM2_PRESCALER_2, num);//3770Hz
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE,0, TIM2_OCPOLARITY_HIGH);
TIM2_OC1PreloadConfig(ENABLE);
TIM2_Cmd(ENABLE);
直接改成这样的不行
butterflyspring 回答时间:2020-2-4 14:44:50
一般来说,单步调试一下看看哪里结果不是你预想的。另外,8位单片机直接做那么长度的复杂运算不适合的,硬件指令都没有支持的,我看到的都是用户简化运算,毕竟没有32位那么多强大的指令和总线宽度

评分

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

查看全部评分

所属标签

相似问题

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