推荐阅读最新更新时间:2024-03-16 14:30
STM32之SysTick
STM32单片机是以Cortex-M3为内核的 以用Cortex-M3中关于SysTick的描述: SysTick定时器被捆绑在NVIC中,用于产生SysTick异常(异常号:15)。在以前,操作系统还有所有使用了时基的系统,都必须一个硬件定时器来产生需要的“滴答”中断,作为整个系统的时基。滴答中断对操作系统尤其重要。例如,操作系统可以为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 Co
[单片机]
STM32 SysTick定时器和delay延迟函数
一,什么是Systick定时器 Systick定时器也叫滴答定时器,是内核级别的24位倒计数简单定时器,常用做延迟和系统心跳时钟(如:UCOS) 优点:节省MCU资源,不需要浪费一个定时器,只要不清除Systick使能位,就不会停止,即使在睡眠模式下也能工作 捆绑在NVIC中断优先级管理,能产生Systick异常(中断),可设置中断优先级 二,Systick相关寄存器 CTRL: Systick控制和状态寄存器 LOAD: Systick重装载寄存器 VAL: Systick当前值寄存器 CALIB: Systick校准值寄存器 定时器工作方式: 每经过一个Systick时钟周期,VAL寄存
[单片机]
LPC1114采集温度传感器DS18B20程序
Temperature.h文件 #ifndef _TEMPERATURE_H_ #define _TEMPERATURE_H_ #include lpc11xx.h #define DQ_H (LPC_GPIO0- DATA |= (1 2)) #define DQ_L (LPC_GPIO0- DATA &=~(1 2)) #define DQ_IN (LPC_GPIO0- DIR&=~(1 2)) #define DQ_OUT (LPC_GPIO0- DIR|=(1 2)) #define DQ_DATE ((LPC_GPIO0- DATA&0x4) 2^1) //DS18B20 ROM 命令宏定义 #def
[单片机]
STM32之SysTick(系统定时器)
SysTick定时器是被捆绑在NVIC中的,用于产生SysTick异常(异常号是15)。(同样,玩过51单片机的都知道定时器的作用了) 在STM32在内核部分是包含了一个简单的定时器–SysTick timer。因为在所有的Cortex-M3芯片上都有这个定时器,所以软件在不同芯片生产厂商的Cortex-M3器件间的一只工作就得以化简。 该定时器的时钟源可以是内部时钟( FCLK, CM3 上的自由运行时钟),或者是外部时钟(CM3 处理器上的 STCLK 信号)。不过, STCLK 的具体来源则由芯片设计者决定,因此不同产品之间的时钟频率可 能会大不相同。因此,需要阅读芯片的使用手册来确定选择什么作为时钟源。 *(在 STM32
[单片机]
LPC1114/LPC11U14和LPC1343对比学习(六)I2C
这三种芯片在I2C总线方面是基本一致的,但是LPC11U14的I2C管脚功能要强大一些增加了真正的开漏设置功能。它们的特点大致如下: 由于I2C管脚是开漏输入,所以需要外接上拉电阻才能输出高电平,所以在使用这两个管脚作为GPIO时也需要接上拉电阻。总线配置如: 需要注意的是上来电阻与总线速度成反比,需要根据具体情况设定。 寄存器和结构在这里就不介绍了,网友可以自行查阅手册,下面是I2C的初始化函数: I2C的控制函数比较多,这里就不一一介绍了,需要注意的是在使用I2C写EEPROM时,要延时毫秒级,否则可能会不成功;在按页写输入时,需要注意也大小和页地址。
[单片机]
STM32 SysTick 精确延时(非中断方式)
SysTick是Cortex-M内核自带的一个24位定时器,所以我们可以在core_cm3.h或core_cm4.h头文件中看到它的寄存器定义和配置函数SysTick_Config()。SysTick的功能非常简单,仅仅提供一个时基功能,支持中断请求,因此它的寄存器寥寥无几。 以下是手册上对SysTick寄存器的介绍: CTRL为控制寄存器: ENABLE:使能位 TICKINT: 中断的开关,当计数溢出且TICKINT=1时SysTick将发出中断申请。 CLKSOURCE:时钟选择位,CLKSOURCE=1时选择系统时钟,如果是M3则为72MHz,M4则为168MHz。否侧选择外部时钟作为时钟源。 COUNTF
[单片机]
LPC1114/LPC11U14和LPC1343对比学习(八)USB
这3种芯片的功能非常多,到此基本上我们已经介绍完成,只有AD、WDT等没有介绍,鉴于其难度不大这方面的内容就不再说明。下面将进行终极篇的学习----USB学习,由于USB难度非常大,这一贴可能会编写很长时间,这里将主要学习HID的应用。 LPC1114没有USB功能,所以这里只能针对LPC1343和LPC11U14进行说明。对于这两种有USB功能的芯片其还是区 别,LPC1343内部集成了USB驱动,而LPC11U14没有此功能,所以LPC1343USB开发比较简单一点,价格也要贵一点。为了编写出通用的 USB驱动代码,这里将先对LPC11U14 USB进行学习,之后在移植到LPC1343。 鉴于USB开发难度,这里将不会从零开
[单片机]
STM32学习手记⑤-SysTick精确延时
/*********************************************************** 例程名称:SysTick实验 硬件连接:指示灯连接 PE0 功能描述:每秒PEO翻转一次 */ #include stm32f10x_lib.h extern vu32 TimingDelay; //在本文件引用stm32f10x_it.c定义的精确计时变量 /************************************************************ * 函数名称 :void RCC_Configuration() * 功能描述 : 复位和时钟控制 配置 * 参数
[单片机]