上来就是systick定时器,因为GPIO等的基础操作过于简单,网上资料太多了。
这里讨论的是基于STM32F10x 的基于 V3.5.0库的库函数配置方法。
Systick又叫系统嘀答定时器,是一个24位的硬件定时器。嵌入式操作系统常有一个类似“心跳”的定时器,来分配时间片,实现宏观上的多任务。
其实,操作系统的多任务,在微观上,CPU对多任务的管理是分时的。每个任务都给一定的时间片,就是把时间分成N个等份,优先级高或是
重要的任务多占几个时间片,优先级低的或是不重要的任务就少占几个时间片。大部分嵌入式操作系统基于时间片的。如ucos。
那基于STM32F10x V3.5.0库如何操作Systick定时器呢。
首先:STM32 的内核库已经提供了这个功能。只要配置SysTick_Config()即可实现。
看下面的程序段。
/*
* 函数名:SysTick_Init
* 描述 :启动系统滴答定时器 SysTick
* 输入 : 无
* 输出 :无
* 调用 : 外部调用
*/
void SysTick_Init(void)
{
if(SysTick_Config(SystemCoreCloc
这里讨论的是基于STM32F10x 的基于 V3.5.0库的库函数配置方法。
Systick又叫系统嘀答定时器,是一个24位的硬件定时器。嵌入式操作系统常有一个类似“心跳”的定时器,来分配时间片,实现宏观上的多任务。
其实,操作系统的多任务,在微观上,CPU对多任务的管理是分时的。每个任务都给一定的时间片,就是把时间分成N个等份,优先级高或是
重要的任务多占几个时间片,优先级低的或是不重要的任务就少占几个时间片。大部分嵌入式操作系统基于时间片的。如ucos。
那基于STM32F10x V3.5.0库如何操作Systick定时器呢。
首先:STM32 的内核库已经提供了这个功能。只要配置SysTick_Config()即可实现。
看下面的程序段。
/*
* 函数名:SysTick_Init
* 描述 :启动系统滴答定时器 SysTick
* 输入 : 无
* 输出 :无
* 调用 : 外部调用
*/
void SysTick_Init(void)
{
if(SysTick_Config(SystemCoreCloc