14\16\17\15:SPI接口。
30\31:UART接口
3\4:32.768KHz晶振接口。
5\6:主时钟晶振接口
8:模拟地
23\35\47\44:数字地。
晶振就算不起振,芯片也会自动切换为内部高速时钟的,外部晶振不影响程序是否运行。建议运行一个最简单的程序,比如LED灯的闪烁试试。
另外LED灯是在PB3和PB4,这两个引脚同时也是JTAG的引脚,并且系统上电默认使用JTAG,也就是如果楼主想要让PB3、PB4作为普通IO口引脚,还需在程序开头将JTAG关闭。
扩展资料:
使用环境
1、软件环境:Keil MDK 5.15。
2、硬件环境:STM32F103C8T6最小系统。
3、在项目中需要用到STM32F103C8T6的GPIOA13引脚,发现无论如何初始化都无法控制该引脚的输出电平,该引脚一直输出高电平,而且非常稳定。查阅相关资料发现是JTAG模式搞的鬼。
参考资料来源:百度百科——单片机。
周期性唤醒标志由 16 位可编程自动重载递减计数器生成。唤醒定时器范围可扩展至 17 位。
可通过 RTC_CR 寄存器中的 WUTE 位来使能此唤醒功能。
唤醒定时器的时钟输入可以是: 2、4、8 或 16 分频的 RTC 时钟 (RTCCLK)。
当 RTCCLK 为 LSE (32.768 kHz) 时,可配置的唤醒中断周期介于 122 µs 和 32 s 之 间,且分辨率低至 61 µs。
· ck_spre(通常为 1 Hz 内部时钟)。
当 ck_spre 频率为 1 Hz 时,可得到的唤醒时间为 1s 到 36h 左右,分辨率为 1 秒。这 一较大的可编程时间范围分为两部分:
– WUCKSEL [2:1] = 10 时为 1s 到 18h。
– WUCKSEL [2:1] = 11 时约为 18h 到 36h。在后一种情况下,会将 216 添加到 16 位计数器当前值。完成初始化序列后(请参见第 600 页的编程唤醒定时器),定时 器开始递减计数。在低功耗模式下使能唤醒功能时,递减计数保持有效。此外,当 计数器计数到 0 时,RTC_ISR 寄存器的 WUTF 标志会置 1,并且唤醒寄存器会使用其重载值(RTC_WUTR 寄存器值)动重载。 之后必须用软件清零 WUTF 标志。
通过将 RTC_CR2 寄存器中的 WUTIE 位置 1 来使能周期性唤醒中断时,它会使器件退出低功耗模式。
如果已通过 RTC_CR 寄存器的位 OSEL[1:0] 使能周期性唤醒标志,则该标志可连接到RTC_ALARM 输出。可通过 RTC_CR 寄存器的 POL 位配置 RTC_ALARM 输出极性。
系统复位以及低功耗模式(睡眠、停机和待机)对唤醒定时器没有任何影响。
二、配置周期唤醒
配置步骤如下:
1. 禁用周期唤醒功能,复位RTC_CR2中WUTE位;
2. 等待RTC_ISR1中WUTWF位置位,表示唤醒计数器可配置;
3. 配置唤醒时钟,设置RTC_CR1中WUCKSEL[2:0]位:
- 000: RTCCLK/16。
- 001: RTCCLK/8。
- 010: RTCCLK/4。
- 011: RTCCLK/2。
- 10x: ck_spre(1Hz,WUT计数范围:0x0000~0xFFFF)。
- 11x: ck_spre(1Hz,WUT计数范围:0x10000~0x1FFFF)。
4. 配置唤醒周期,装载寄存器RTC_WUTRH和RTC_WUTRL;
5. 使能周期唤醒功能,置位RTC_CR2中WUTE位。(该中断会使MCU退出低功耗状态,进入运行状态。)。
RTCCLK,预分频2,4,8或16。如果RTCCLK为LSE,即32768Hz,则可配置唤醒周期为:(61us ~ 32s)。
ck_spre, 1Hz时钟,则可配置唤醒周期为:(1s ~ 36h)。
三、RTC时钟配置
1、时钟源选择:RTC时钟源可选HSE,LSE,HSI或LSI。
为确保RTC精确工作,要求系统时钟(SYSCLK)必须等于或大于4*RTCCLK值。如果系统时钟(SYSCLK)为LSE或LSI,则RTC时钟必须等于系统时钟(SYSCLK),并且禁用RTC同步机制(置位RTC_CR1寄存器RATIO位)。
2、配置RTC时钟源:配置RTC时钟源为LSE,1分频,即32768Hz。
3、配置ck_spre时钟; ck_spre时钟,默认1Hz时钟。
(1) 设置7位异步预分频,RTC_APREG:PREDIVA,默认127;
(2) 设置13(Medium)或15位同步预分频,RTC_SPRERx:PREDIV_S,默认255。
即:1Hz=32768/((127+1)*(255+1))。
ck_spre时钟可用于日历和定时唤醒时钟。
代码参考
//参数time 秒
void APP_EnterLP(uint32_t time )。
MX_GPIO_Init_stop();。
/* Enable Ultra low power mode */。
HAL_PWREx_EnableUltraLowPower(); //使能超低功耗。
/* Enable Fast WakeUP */。
HAL_PWREx_EnableFastWakeUp(); //使能快速唤醒。
/* Disable Wakeup Counter */。
HAL_RTCEx_DeactivateWakeUpTimer(&hrtc);。
/* Clear Wake Up Flag */。
__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);。
// HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, (uint32_t)(time * 2048), RTC_WAKEUPCLOCK_RTCCLK_DIV16);//rtc LSE=32.768k 2048Hz 488us-- 32秒。
HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, time-1, RTC_WAKEUPCLOCK_CK_SPRE_16BITS); //wangxl@20190814 时钟选择1Hz 65535/60/60 ~18 可得到的唤醒时间为 1s 到 18h 左右。
printf("进入停止模式\r\n");。
/* Select MSI as system clock source after Wake Up from Stop mode */。
__HAL_RCC_WAKEUPSTOP_CLK_CONFIG (RCC_STOP_WAKEUPCLOCK_HSI);。
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON , PWR_STOPENTRY_WFI);。
MX_GPIO_Init();。
HAL_Delay(5); //wangxl@20190814 稳定时钟 必免串口打印乱码。
printf("wake up\r\n");。
打开CSDN,阅读体验更佳
STM32---RTC实时时钟,随机数发生器和待机唤醒_码字但很菜的博客-CSDN博...。
void RTC_AlarmSubSecondConfig(uint32_t RTC_Alarm, uint32_t RTC_AlarmSubSecondValue,uint32_t RTC_AlarmSubSecondMask) uint32_t RTC_GetAlarmSubSecond(uint32_t RTC_Alarm); RTC周期唤醒相关函数 void RTC_WakeUpClockConfig(...。
继续访问
STM32L051低功耗STOP模式下RTC唤醒_TonyIOT的博客_stm32l05...。
很多MCU都有低功耗模式,以满足对功耗要求苛刻的应用场景。STM32系列MCU的低功耗模式根据其内核与类型的不同也各不相同,网上有很多文章介绍。本文总结下STM32L051的STOP模式,通过RTC唤醒。
继续访问
最新发布 GD32F4—RTC闹钟及自动唤醒中断配置详解。
GD32F4RTC闹钟及自动唤醒中断配置。
继续访问
【STM32】RTC休眠唤醒(停机模式)、独立看门狗开启状态下。
本文章基于STM32F103RC; 在开启独立看门狗的状态下,进入停机模式,由RTC定时闹钟唤醒系统。 直接上代码: #include "main.h" static void RTC_NVIC_Config(void) { EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;。
继续访问
stm32f103 RTC周期性待机唤醒(一)_luck_horse的博客。
我的RTC初始化部分有个“保存在备份寄存器的RTC标志是否已经被配置过的判断”,如果已经配置过,则进入else部分,但是这个else部分没有“要使能电源时钟,使能备份时钟,取消后备区的写保护”这些配置语句,而待机唤醒后程序从主函数执行,会执行...。
继续访问
...RTC实时时钟_基尔霍夫原来是码农的博客_stm32 rtc 时间。
RTC简介 STM32F4的RTC,是一个独立的BCD 定时器/计数器。STM32F4的RTC 提供一个日历时钟(包含年月日时分秒信息)、两个可编程闹钟(ALARM A和ALARM B)中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC 还包含用于管理低功耗模式...。
继续访问
STM32L031低功耗深度睡眠RTC唤醒注意事项。
1. 发现进入睡眠后,电流1.2uA,满足要求。结果唤醒后,第二次进入睡眠后,电流跳到了19uA,且一直保持下去。结果看了https://blog.csdn.net/zzw3255/article/details/54342878的介绍,把串口干掉了,电流下降到了2.6uA。2. 去掉了串口,第一次进入睡眠1.2uA,第二次进入睡眠2.6uA。有陷入了僵局,没开串口、没开GPIO,啥事都没干,怎么...。
继续访问
STM32L053RTC——唤醒定时器定时唤醒睡眠。
L053RTC——唤醒定时器定时唤醒睡眠。
继续访问
CM3计算板RTC闹钟唤醒系统_jianwang16的博客_bios rtc...。
rtcctlshowalarm1 /* rtcctl 启用闹钟1 */ rtcctlonalarm1 /* rtcctl 清除闹钟1 */ rtcctl clear alarm1 /* rtcctl 设置闹钟1时间 2019/06/01 15:30:00 闹钟产生中断*/ rtcctlset06/01/201915:30:00 ...。
继续访问
RTC自动唤醒_Ftworld21的博客_rtc唤醒。
RTC唤醒低功耗(standby)模式 这段时间在公司最一个低功耗的项目,采用的的STM32F103的最低功耗standby模式,进入最低功耗模式后,电流降到了3uA,和芯片手册上的大致相同。对进入低功耗模式,网上有很多程序,我在这里把我的粘贴上来,仅供参...。
继续访问
热门推荐 STM32复习笔记(十二)RTC实时时钟(低功耗待机唤醒)
声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照正点原子的视频和文档的实际顺序梳理,转载请注明出处。 作者:sumjess 适用:这个视频我已经看过3遍了,总会有忘记的,所以来写这本书的随手笔记,记录重点、易忘点。该博客可以当做字典,也可以当做笔记。 目前内容:RTC实时时钟(低功耗待机唤醒) 一、RTC实时时钟特征与原理: ★ R...。
继续访问
STM32----RTC实时时钟,随机数发生器和待机唤醒。
RTC实时时钟 RTC是个独立的BCD定时器/计数器。RTC 提供一个日历时钟,两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。 两个32位寄存器包含二进码十进制格式(BCD)的秒,分钟,小时(12或24小时制),星期几,日期,月份和年份。此外,还可以 提供二进制的亚秒值。 系统可以自动将月份的天数补...。
继续访问
hal 外部唤醒脚唤醒_【STM32】HAL库开发教程(六)—低功耗唤醒。
前言不必害怕未知,无需恐惧犯错,做一个Creator!本文主要介绍STM32_HAL库开发中低功耗唤醒的使用。一、开发步骤1.STM32CubeMX配置在左侧引脚配置处勾选RTC进行配置在RTC模式处勾选“Wakeup”唤醒使能RTC唤醒模式在RTC参数配置处进行参数配置:RTC时钟、Wakeup唤醒时钟、Wakeup唤醒计数器以及勾选”NVIC Settings”使能外部中断 2.进低功耗程序编...。
继续访问
STM32Cube STM32L053配置RTC WAKEUP中断唤醒。
芯片手册中提到的从停止模式唤醒说明 芯片手册中提到的从待机模式唤醒说明 配置 LL_RTC_InitTypeDef RTC_InitStruct = {0}; LL_RCC_EnableRTC(); NVIC_SetPriority(RTC_IRQn,0); NVIC_EnableIRQ(RTC_IRQn); RTC_InitStruct.HourFormat = LL_RTC_HOURFORMAT_24HOUR; RTC_InitStruct.AsynchPrescaler = 12。
继续访问
STM32L0系列单片机低功耗(STOP)使用+RTC唤醒+LPUART(DMA方式)唤醒+LPTIM唤醒。
文章目录STM32L0低功耗应用1.睡眠模式2.低功耗运行模式3.低功耗睡眠模式4.带RTC的停止模式5.不带RTC的停止模式6.带RTC待机模式7.不带RTC待机模式留更设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 STM32L0低功耗应用 S...。
继续访问
STM32 STOP模式开发问题集锦。
STM32 STOP模式开发问题集锦 芯片:STM32L151RBT6 库:HAL库 ①晶振不起振问题 项目过程中,遇到了晶振不起振问题,看了很多帖子,还是不能确定到底是什么问题。我个人建议是使用有源晶振或者是内部晶振(自带晶振不会黑自己吧…) 由于内部低速晶振并非是32.768,所以对RTC要求高的,考虑有源的32.768K晶振,我在实验过程中换了一个无源的KDS(株式会社-大真空)目前也没有发现不起振的情况。高速晶振可以内部,也可以有源。 ②HAL库 中RTC唤醒STOP模式问题 和时间相关的唤醒,一种。
继续访问
STM32L151C8T6笔记2:RTC唤醒的STOP模式。
尝试在保留RAM数据的前提下进行低功耗定时运行,Stop模式带RTC成为唯一选择,上图来自《AN3193:STM32L1xx超低功耗功能概述》。 梳理工作逻辑: (1)需要进入低功耗之前,先配置RTC的Wakeup(也可以用闹钟Alarm,类似,不赘述): //to set wake up interval if (HAL_RTCEx_SetWakeUpTimer_IT(&hrtc,( RTC_WKUP_INTVAL_IN_SECOND*1000000 /W...。
继续访问
RTC定时开机闹钟
RTC是Real Time Clock的简称,它在硬件电路上单独供电,当系统关机时,CPU和其他外部硬件设备全部掉电,但是RTC仍然继续工作. HWCR (Hibernate Wakeup Control Register)是一个控制休眠唤醒的寄存器,如果我们要使用休眠状态下RTC唤醒的功能,我们需要打开它的第0位ELAM(RTC Alarm Wakeup enable),当ELAM置1...。
继续访问
STM32F030使用RTC周期性唤醒STOP模式。
首先,F030与F072的RTC唤醒功能是不一样的,在相关定义文件stm32f0xx_exti.h中有如下定义: #define EXTI_Line17 ((uint32_t)0x00020000) /*!< Internal interrupt line 17 Con...。
继续访问
stm32f103 RTC周期性待机唤醒(一)
转载于http://blog.csdn.net/u011732167/article/details/50958520 今天终于发现问题出在哪里了,对待机唤醒的问题做一个总结(只针对我遇到的问题,其他部分网上都有,基于stm32f103) 1、解决我遇到的问题 我的RTC初始化部分有个“保存在备份寄存器的RTC标志是否已经被配置过的判断”,如果已经配置过,则。
继续访问
hal库开启中断关中断_技术笔记STM32CubeL4 固件库V1.13.0版的RTC唤醒。
因为STM32L4极其出色的低功耗性能,越来越多的用户在使用STM32L4系列开发产品。谈到低功耗,就少不了低功耗模式。进入低功耗模式,自然需要能够唤醒。很多用户在产品开发中会使用RTC把系统从低功耗模式定时唤醒。问题客户在产品的设计中,使用STM32L476RGT6。客户使用RTC的定时唤醒来将系统从STOP2模式中唤醒,但是发现无法唤醒。调研01了解问题客户参考\STM32Cube_...。
继续访问
stm32中断源有哪些_STM32低功耗待机模式+RTC闹钟中断唤醒。
很多单片机都有低功耗模式,STM32 也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。 单片机内部功率是各功能部分功率的总和,低功耗模式是通过关掉部分内部功能达到...。
继续访问
STM32开发笔记30:STM32L0低功耗设计——STOP_RTC模式下的休眠时间。
单片机型号:STM32L053R8T6 本文介绍STOP_RTC模式下,设置进入低功耗休眠时间的方法。 低功耗的休眠时间的设置首先需要确定RTC的基准时间,我们一般将其设置为1秒,这在《STM32L0低功耗设计4: RTC模块1秒时钟的产生方法》中已经介绍过,大家看一下就好。 接下来,就需要对HAL_RTCEx_SetWakeUpTimer_IT函数的第2个参数进行设...。
继续访问
基于STM32通过RTC唤醒低功耗模式。
RTC自动唤醒低功耗模式
以STM32F103C8T6为例(stm32系列后缀的前部分STM32F103都是相同的,只有后面几位数字和字母才有区别):
1、STM3代表的是ARM Cortex-M内核的32位微控制器。 。
2、F代表的是芯片子系列。 。
3、103代表的是增强型系列。 。
4、C指引脚数是48脚。
5、8指内嵌的Flash容量为64K字节Flash。
6、T代表的是LQFP封装。
7、6指工作温度范围为-40——85℃。
补充:
1、引脚数除了C代表48脚之外,还会用其他字母表示,比如T代表36脚、R代表64脚,V代表100脚,Z代表144脚,I代表176脚。
2、内嵌Flash容量除了8为64K字节Flash,还会用其他数字或者字母表示,比如6代表的是32K字节Flash,B代表的是128K字节Flash,C代表的是256K字节Flash,D代表的是384K字节Flash,E代表的是512K字节Flash,G代表的是1M字节Flash。
3、封装除了L是LQFP封装之外,还可以用其他字母表示,比如H代表的是BGA封装,U代表的是VFQFPN封装。
4、工作温度范围6代表的-40——85℃之外,还有7代表的是-40——105℃。
扩展资料
在STM32F107和STM32F105互连型系列微控制器之前,意法半导体已经研制出了STM32基本型系列、USB基本型系列、增强型系列、互补型系列。
其中,增强型系列包括STM32F103R8、STM32F103C8、STM32F103VB、STM32F103V8、STM32F103RB、STM32F103ZE、 STM32F103VE。
基本型系列包括STM32F101R6、STM32F101V8、STM32F101C8、STM32F101VB、STM32F101R8、STM32F101RB。
参考资料来源:百度百科-stm32。
STM32F103C8T6的优点是高性能、低成本、低功耗,缺点是价格昂贵。
有意思的是STM32系列芯片上印有一个蝴蝶图像,据ST微控制器产品部Daniel COLONNA先生说,这是代表自由度,意在给工程师一个充分的创意空间。
STM32注意:
如果你正为项目的处理器而进行艰难的选择:一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗,那么,基于 ARM Cortex-M3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。
通道0对应PA0,通道1对应PA1,通道2对应PA2,通道3对应PA3,以此类推。
默认选项包括PA0的foot,ADC123_IN0,这意味着当PA0进行ADC采集引脚时,可以使用ADC1,2,3模块的channel0。STM32之ADC通道顺序设置:
1、在使用STM32的ADC多通道采样raid时,需要为所使用的每个通道配置相应的转换顺序和采样时间。
2、参数秩为通道的到道采样顺序。例如,如果通道10的秩设置为1,则表示在ADC中采样的第一个通道为ADC10。
3、如果通道ADC10、ADC11、ADC12和ADC13的通道数设置相同,那么DMA输出到内存的4个通道的值将是不确定的。
4、设置好信道采样序列后,DMA终端可以准确输出各信道的采样值。
注意事项:
阈值和触发水平通常分别是Vcc的三分之二和三分之一。这些触发水平可以用来改变控制(PIN5)电压终端。当触发器(PIN2)的输入低于触发电平时,触发器(PIN3)的输出升高。如果高于触发电平的触发输入和阈值的输入阈值都高于该电平,则触发器复位回低电位。