STM32 v3.5固件库systick ms延时
来源:互联网 发布:打鼓谱软件 编辑:程序博客网 时间:2024/06/04 17:49
http://yaoohui.blog.163.com/blog/static/173794970201231110648251/
《如何从STM32F10xxx固件库V2.0.3升级为STM32F10xxx标准外设库V3.0.0》一文中的“3.3.2 SysTick”讲到:
在标准外设库中移除了SysTick的驱动,因此用户必须调用CMSIS定义的函数。CMSIS只提供了一个SysTick设置的函数,替代了STM32原有SysTick驱动的全部函数。SysTick_Config(uint32_t ticks);该函数设置了自动重载入计数器(LOAD)的值,SysTick IRQ的优先级,复位了计数器(VAL)的值,开始计数并打开SysTick IRQ中断。SysTick时钟默认使用系统时钟。下面的例程为使用固件库V2.0.3进行SysTick设置:/* Select the HCLK Clock as SysTick clock source (72MHz) */SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);/* SysTick end of count event each 1ms with input clock equal to 72MHz (HCLK) */SysTick_SetReload(72000);/* Enable SysTick interrupt */SysTick_ITConfig(ENABLE);下面的例程为使用标准外设库V3.0.0进行SysTick设置:/* Setup SysTick Timer for 1 msec interrupts */if (SysTick_Config(SystemFrequency / 1000)) /* SystemFrequency is defined in “system_stm32f10x.h” and equal to HCLK frequency */{ /* Capture error */ while (1);}
2.0库函数延时代码/*初始化时钟*/
void Init_SysTick(void){ /* Disable SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Disable); /* Disable the SysTick Interrupt */ SysTick_ITConfig(DISABLE); /* Configure HCLK clock as SysTick clock source */ SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); /* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */ SysTick_SetReload(9000); /* Enable the SysTick Interrupt */ SysTick_ITConfig(ENABLE);}
/*延时1ms函数*/__IO uint32_t TimingDelay;
void delay_ms(__IO uint32_t nTime){ /* Enable the SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Enable); TimingDelay = nTime; while(TimingDelay != 0); /* Disable SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Disable); /* Clear SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Clear);}
/*stm32f10x_it.c中的void SysTick_Handler(void)函数改为*/extern __IO uint32_t TimingDelay;
void SysTick_Handler(void){ if (TimingDelay != 0x00) { TimingDelay--; }}
/*用法,延时1秒*/delay_ms(1000);
3.5库函数延时代码/*初始化时钟*/
void Init_SysTick(void){ if(SysTick_Config(SystemCoreClock / 1000)) //注意:3.5库中 SystemFrequency 被 SystemCoreClock 取代。 while(1);}
/*延时1ms函数*/
__IO uint32_t TimingDelay;
void delay_ms(__IO uint32_t nTime){ TimingDelay = nTime; while(TimingDelay != 0);}
/*stm32f10x_it.c中的void SysTick_Handler(void)函数改为*/
extern __IO uint32_t TimingDelay;
void SysTick_Handler(void){ if (TimingDelay != 0x00) { TimingDelay--; }}
/*用法,延时1秒*/
delay_ms(1000);
/*初始化时钟*/
void Init_SysTick(void){ /* Disable SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Disable); /* Disable the SysTick Interrupt */ SysTick_ITConfig(DISABLE); /* Configure HCLK clock as SysTick clock source */ SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); /* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */ SysTick_SetReload(9000); /* Enable the SysTick Interrupt */ SysTick_ITConfig(ENABLE);}
/*延时1ms函数*/__IO uint32_t TimingDelay;
void delay_ms(__IO uint32_t nTime){ /* Enable the SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Enable); TimingDelay = nTime; while(TimingDelay != 0); /* Disable SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Disable); /* Clear SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Clear);}
/*stm32f10x_it.c中的void SysTick_Handler(void)函数改为*/extern __IO uint32_t TimingDelay;
void SysTick_Handler(void){ if (TimingDelay != 0x00) { TimingDelay--; }}
/*用法,延时1秒*/delay_ms(1000);
/*初始化时钟*/
void Init_SysTick(void){ if(SysTick_Config(SystemCoreClock / 1000)) //注意:3.5库中 SystemFrequency 被 SystemCoreClock 取代。 while(1);}
/*延时1ms函数*/
__IO uint32_t TimingDelay;
void delay_ms(__IO uint32_t nTime){ TimingDelay = nTime; while(TimingDelay != 0);}
/*stm32f10x_it.c中的void SysTick_Handler(void)函数改为*/
extern __IO uint32_t TimingDelay;
void SysTick_Handler(void){ if (TimingDelay != 0x00) { TimingDelay--; }}
/*用法,延时1秒*/
delay_ms(1000);
- STM32 v3.5固件库systick ms延时
- STM32 v3.5固件库systick ms延时
- stm32使用systick精确延时
- STM32中,systick具体延时时间计算
- STM32 SysTick 精准延时 简单分析
- STM32 SysTick定时器做延时函数
- STM32外设驱动---SysTick精准延时
- stm32 SysTick定时器常见问题和实现延时
- STM32使用systick实现精确延时
- stm32 延时 delay us ms
- STM32 SysTick 3.5固件库
- 利用STM32的SysTick设计精确延时函数
- STM32 systick做为系统时间使用(非简单延时)
- STM32学习笔记——使用SysTick定时器做延时
- stm32 软件精确延时非systick 非中断
- STM32 SysTick 精确延时(非中断方式)
- stm32 软件精确延时非systick 非中断
- STM32 SysTick定时器常见问题及延时函数的实现
- 307 - Sticks
- 通过sql语句查询表的列和对应的数据并在jsp页面上显示
- 关于STM32的systick定时器的详细说明
- Python Post 请求
- ssh 后台执行java 程序
- STM32 v3.5固件库systick ms延时
- 2年似一场梦
- 通过HTTP请求,将XML以SOAP消息的方式发给JWSDP、.NET的webservice
- 移动应用开发辅助服务推荐
- ARM9存储器
- python
- 游戏化学习法:牛人教你如何赢得谷歌面试
- 给Python中通过urllib2.urlopen获取网页的过程中,添加gzip的压缩与解压缩支持
- 利用搜狗输入法构建企业级云输入法平台