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

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
SamXu

SamXu

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
4 回答

stm32F103跑ucos部分任务停转死机是什么原因?

未设置标签
SamXu SamXu 回答时间: 2017-10-19 12:55

后来找到可能的原因了,想办法提高了复现率; 貌似是两个任务同时使用一个ADC的不同通道造成的, 当两个任务同时采样时,adc转化很快就完成了,在等待adc转化结束的while里面会一直等待,导致低于这个优先级的任务会一直堵死而高优先级的任务任然能运行;         ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );         ADC_SoftwareStartConvCmd(ADC1, ENABLE);         while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));         res = ADC_GetConversionValue(ADC1); 后来在检测前后加上锁,就没有复现这个问题了: LOCK_ADC();         ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );         ADC_SoftwareStartConvCmd(ADC1, ENABLE);         while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));         res = ADC_GetConversionValue(ADC1); UNLOCK_ADC();

赞0
SamXu SamXu


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16