你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
stm32f303的延时程序
[复制链接]
头像为什么这么红
提问时间:2020-11-17 11:21 /
问答
是否解决:
各位大神。最近用stm32f303进行ad采集,采集完需要延时1000ms,请教一下f3的延时程序怎么写,多谢了
赞
0
收藏
0
评论
7
分享
发布时间:2020-11-17 11:21
举报
请先
登录
后回答问题
7个回答
lebment
回答时间:2020-11-17 13:18:24
a1024a.1 32b0c
定时器
赞
0
评论
回复
支持
反对
devidz
回答时间:2020-11-17 14:29:02
a4a.1 32b0c
采用定时器编写一个延时。
赞
0
评论
回复
支持
反对
不咸不要钱
回答时间:2020-11-18 11:07:34
a0a.1 32b0c
定时器或者使用汇编延时
/*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 */
赞
0
评论
回复
支持
反对
废鱼
回答时间:2020-11-18 11:13:49
a0a.1 32b0c
AD采集完成后1S后再继续采集吗?采集完成可以加停止标志位,记录ticks,等最新的ticks-记录ticks大于1s时,重新开启AD采集功能。
赞
0
评论
回复
支持
反对
zhangt0713
回答时间:2020-11-18 14:32:56
a4a.1 32b0c
粗暴的方式就是 软件延时,不过这种延时很不准,网上一大堆
精确的延时呢,采用滴答定时器
赞
0
评论
回复
支持
反对
yklstudent
回答时间:2020-11-20 15:23:34
a0a.1 32b0c
上RTOS系统,系统自带延时函数
赞
0
评论
回复
支持
反对
butterflyspring
回答时间:2020-11-30 15:29:52
a0a.1 32b0c
用定时器更新事件触发ADC采样呢?因为ADC采样和转换时间是固定的且可以配置,再加上延迟时间配置给定时器试试。
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
/*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 */
精确的延时呢,采用滴答定时器