stm32F103C8T6芯片
备份寄存器数据丢失两种可能:
1、触发了入侵中断
PC13 做为普通IO使用时 要禁用入侵中断功能,否则会导致备份寄存器数据在关机,在启动的时候数据丢失,(可以查阅其他文章,不详解)
2、 芯片VBAT 在关机的时候掉电. 如果需要备份寄存器在关机的时候保存数据,那么VBAT需要接到纽扣电池,如果关机之后VBAT也掉电,备份寄存器是无法保存的,当时我就是好奇为什么备份寄存器数据总是丢失,之后发现是VBAT的原因,后来改成了 flash存储的数据,做法:关机的时候触发 低电压中断,然后保存数据到flash.(一般用MCU内部的flash 存储的话,100uF 足够512字节存储)
下面是几个特殊引脚的说明:
1、PC13 RTC
入侵功能介绍:
侵入检测功能分析:功能数据备份。
1 BKP_CR的TPAL位,设定决定TAMPER引脚的信号由0变1或是又1变0为有效触发信号,产生侵入检测事件置位标志 位(BKR_CSR 的TEF)。
2 侵入检测事件后会将所有数据备份寄存器复位。
3 注意一点的是:在BKP_CR的TPE位允许使能之前,一当有侵入检测引脚产生的侵入检测事件也是有效的。这一点有利 于更好的保护数据。
4.一当TPAL=0(或1),如果在在BKP_CR的TPE位允许(侵入检测引脚允许位)使能之前TPAL=1(或0),则一旦允许了侵入检测功能,则会产生一个额外的侵入事件。尽管BKP_CR的TPE(侵入检测引脚允许位)位为1后并为出现新的沿跳变
5 在一个侵入检测事件被检测到并被清零后,侵入检测引脚应该要禁止掉。当再次在想写数据备份寄存器之前重新设置BKP_CR的TPE位(侵入检测引脚允许位)。这样可以避免侵入检测引脚上仍有侵入检测事件产生时,不断的对数据备份寄存器写操作。
6VDD电源断开时, 侵入检测功能仍有效,位了避免不必要的数据备份寄存器复位,TAMPER引脚外部应连接到正确的电平上。
初始化IO的时候加上这句号:
PWR_BackupAccessCmd( ENABLE );/* 允许修改RTC和后备寄存器*/
RCC_LSEConfig(RCC_LSE_OFF);//关闭外部低速外部时钟信号功能 后,PC13 PC14 PC15 才可以当普通IO用。
BKP_TamperPinCmd(DISABLE); /* 关闭入侵检测功能,PC13可以用作普通IO*/
BKP_ITConfig(DISABLE); /* 禁止TAMPER 中断*/
2、 PA13 PA14 PA15 这三个脚默认是 JTAG脚 ,就算是按照普通IO进行初始化也是不可以正常用的需要添加
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
则可以当做正常IO使用