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

stm32f303的延时程序

[复制链接]
头像为什么这么红 提问时间:2020-11-17 11:21 /
各位大神。最近用stm32f303进行ad采集,采集完需要延时1000ms,请教一下f3的延时程序怎么写,多谢了
收藏 评论7 发布时间:2020-11-17 11:21

举报

7个回答
lebment 回答时间:2020-11-17 13:18:24
定时器
devidz 回答时间:2020-11-17 14:29:02
采用定时器编写一个延时。
不咸不要钱 回答时间:2020-11-18 11:07:34
定时器或者使用汇编延时
/*120Mhz时钟时,当ulCount为1时,函数耗时3个时钟,延时=3*1/120us=1/40us*/
/*
SystemCoreClock=120000000

us级延时,延时n微秒
userDelay(n*(SystemCoreClock/3000000));

ms级延时,延时n毫秒
userDelay(n*(SystemCoreClock/3000));

m级延时,延时n秒
userDelay(n*(SystemCoreClock/3));
*/
#if defined   (__CC_ARM) /*!< ARM Compiler */
__asm void userDelay(unsigned long ulCount)
{
    subs    r0, #1;
    bne     userDelay;
    bx      lr;
}
#elif defined ( __ICCARM__ ) /*!< IAR Compiler */
void userDelay(unsigned long ulCount)
{
    __asm("    subs    r0, #1\n"
       "    bne.n   userDelay\n"
       "    bx      lr");
}

#elif defined (__GNUC__) /*!< GNU Compiler */
void __attribute__((naked)) userDelay(unsigned long ulCount)
{
    __asm("    subs    r0, #1\n"
       "    bne     userDelay\n"
       "    bx      lr");
}

#elif defined  (__TASKING__) /*!< TASKING Compiler */                           
/*无*/
#endif /* __CC_ARM */
废鱼 回答时间:2020-11-18 11:13:49
AD采集完成后1S后再继续采集吗?采集完成可以加停止标志位,记录ticks,等最新的ticks-记录ticks大于1s时,重新开启AD采集功能。
zhangt0713 回答时间:2020-11-18 14:32:56
粗暴的方式就是 软件延时,不过这种延时很不准,网上一大堆
精确的延时呢,采用滴答定时器
yklstudent 回答时间:2020-11-20 15:23:34
上RTOS系统,系统自带延时函数
butterflyspring 回答时间:2020-11-30 15:29:52
用定时器更新事件触发ADC采样呢?因为ADC采样和转换时间是固定的且可以配置,再加上延迟时间配置给定时器试试。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版