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使用
STM32F103 几个特殊引脚做普通io使用注意事项以及备份寄存器丢失数据问题1,2相关推荐
- Mysql 宕机引发索引丢失很可怕,文件 IO 中如何保证掉电不丢失数据?
欢迎关注方志朋的博客,回复"666"获面试宝典 众所周知,存储设计离不开文件 IO,将数据存储到文件中进行持久化,是大多数消息队列.数据库系统的常规操作.为了更贴近实际的生产场景, ...
- 文件 IO 中如何保证掉电不丢失数据?
前言 好久没有分享文件 IO 的小技巧了,依稀记得上次分享还是在上次. 第二届云原生编程挑战赛正在火热进行中,Kirito 也在做<针对冷热读写场景的RocketMQ存储系统设计>这个题目 ...
- STM32F103最小系统板引脚定义
STM32F103最小系统原理图 本人初学stm32,若有误解之处,还望大佬们指正改进,感谢! STM32F103各引脚定义 可前往<STM32F103xCDE_数据手册-英文>的第三章 ...
- STM32F10×××系列的PC13、PC14、PC15引脚用作普通IO口配置方法
1. 引脚定义 2. 引脚用作普通IO口的条件 注:最新文档中已经删除"在同一时间只有一个引脚能作为输出"也就是三个引脚可以同时作为输出引脚,其他条件未变 3. 代码 void g ...
- STM32 PB3 PB4 PA15引脚作为普通IO口使用指南
STM32 PB3 PB4 PA15引脚作为普通IO口使用指南 stm32的PB3 PB4 PA15引脚可以在使用SWD仿真和烧录的情况下释放出来,作为普通IO口使用. 查看数据手册的引脚定义可以看到 ...
- ## STM32F103的光照、烟雾MQ2、有毒气体MQ135的ADC配置(寄存器版与库函数版
STM32F103的光照.烟雾MQ2.有毒气体MQ135的ADC配置(寄存器版与库函数版 //#include "adc.h"#if 0 //寄存器编程 /************ ...
- FIO测试在不同内核IO参数配置下性能变化情况实验数据记录
实验环境为:四核八线程core i5 CPU,16G内存,350G HDD硬盘 可以在系统盘测试文件系统读写性能,不能测试裸盘的性能!!!测试的时候先利用fio写一个大文件,然后再做读的测试,防止读测 ...
- oracle快速备份全库,做了两次rman 全库备份,如何快速删除第一次的备份?
[20160728]删除备份集问题.txt --itpub有人问的问题,链接:http://www.itpub.net/thread-2064530-1-1.html 做了两次rman 全库备份,如何 ...
- linux 移动硬盘 machine,MacBook使用一块移动硬盘做Win To Go及Time Machine备份
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 博主使用的MacBook Air,256G闪存,可用空间约251G,曾经的分区表为: (这是使用diskutil ...
最新文章
- Windows核心编程(3)字符编码详解
- android remoteviews 设置背景,Android通过RemoteViews实现跨进程更新UI示例
- 【知识图谱】知识图谱概论
- 布谷鸟沙盒分析静态文件_“案例沙盒方法”喜提国际商学院协会(AACSB)2019年启发式创新奖...
- Leetcode--200. 岛屿数量
- octobercms 执行php代码_PHP7语言执行原理
- FreeRTOS列表
- 2021-2025年中国云计算数据中心IT资产处置(ITAD)行业市场供需与战略研究报告
- ffmpeg (四):ffmpeg, ffplay, ffprobe用法
- python正则表达式处理文本内容_Python处理txt文本
- 给Chrome和Firefox添加js脚本作为插件的方法
- 现代大学英语精读第二版(第六册)学习笔记(原文及全文翻译)——3 - What Is News?(新闻是什么?)
- java局域网聊天博客,java swing+socket+mysql实现多个客户端局域网聊天
- html自动循环播放视频列表
- 高斯消元法求解线性方程组(附python代码)
- 宽带服务器无响应678,宽带连接错误678怎么办 是什么原因导致的【解决方法】...
- shell脚本编写简易教程
- 聊聊从脑神经到神经网络
- Mathematics for Computer Science 2
- 厚涂要用ps软件么?什么是厚涂技法
热门文章
- 新编计算机应用基础教材答案,新编计算机应用基础习题参考答案22365.doc
- 开发android主攻四大方向
- 数字化背景下,律师行业如何高效办公?
- Android使用adb命令行卸载手机设备上的应用
- 【毕业设计】13-基于单片机的锂电池管理系统(原理图+源码+仿真工程+论文)
- ARM64汇编指令入门
- 如何模拟一次超过 5 万的并发用户?
- python猜单词小游戏
- matlab信号分析实验报告,信号分析及处理实验报告(基于MATLAB).doc
- offsetWidth、clientWidth、scrollWidth三者的区别