STM32F103 几个特殊引脚做普通io使用注意事项以及备份寄存器丢失数据问题1,2

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使用

 

 

 

 

 

你可能感兴趣的:(C语言)