STM32一些特殊引脚做IO使用的注意事项
1 PC13、PC14、PC15的使用
这三个引脚与RTC复用,《STM32参考手册》中这样描述:


PC13 PC14 PC15需要将VBAT与VDD连接,实测采用以下程序驱动4个74HC165可以不用上拉电阻,输出速度配置为2MHz(实测50MHz也能输出正常),但是还是建议加上拉电阻比较好。
最新文档中已经删除“在同一时间只有一个引脚能作为输出”也就是三个引脚可以同时作为输出引脚,其他条件未变
库函数版本程序如下:
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE );
- PWR_BackupAccessCmd( ENABLE );/* 允许修改RTC和后备寄存器,取消备份区写保护*/
- RCC_LSEConfig( RCC_LSE_OFF ); /* 关闭外部低速时钟OSC32,PC14+PC15可以用作普通IO*/
- BKP_TamperPinCmd(DISABLE); /* 关闭TAMPER入侵检测功能,PC13可以用作普通IO*/
- PWR_BackupAccessCmd(DISABLE); /* 禁止修改RTC和后备寄存器,备份区写保护*/
- /*注意PC13 PC14 PC15通过电源开关进行供电,只能吸收3mA电流,输出只能工作在2MHz,最大驱动30pF,不能驱动LED*/
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 |GPIO_Pin_14 | GPIO_Pin_15; //PC13=SH/LD,PC14=SCLK,PC15空
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//GPIO_Mode_Out_PP;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
寄存器版本程序初始化如下:
- RCC->APB2ENR|=1<<4; //使能PORTC时钟
- RCC->APB2ENR|=1<<0; //使能AFIO时钟
- GPIOC->CRH&=0X000FFFFF; //PC13,14,15设置成输出 2MHz 推挽输出
- GPIOC->CRH|=0X22200000;
- PWR->CR|=1<<8; //取消备份区写保护
- RCC->BDCR&=0xFFFFFFFE; //外部低俗振荡器关闭 C14,PC15成为普通IO
- BKP->CR&=0xFFFFFFFE; //侵入检测TAMPER引脚作为通用IO口使用
- PWR->CR&=0xFFFFFEFF; //备份区写保护
其他链接:STM32L PC13当IO口使用驱动LED,PC14,PC15外接晶振,且RTC正常
2 PB3、PB4、PA15引脚做GPIO使用(SWD下载程序)
PB3、PB4、PA15分别与JTDO、JNTRST和JTDI复用,做普通口需要禁用JTAG,使用SWD下载程序。
程序如下:
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE );
- GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
STM32一些特殊引脚做IO使用的注意事项的更多相关文章
- 都是stm32的JTAG引脚惹的祸
转载请注明出处:http://blog.csdn.net/qq_26093511/article/category/6094215 最近在调试08接口的LED显示屏,使用的是自己做的STM32板子. ...
- 关于STM32的外部引脚中断的问题
今天想用自己以前的比较干净的工程模板做一个东西,,,,,,,在添加上引脚中断的时候,,突然想知道自己配置的中断优先级是否正确执行,,,,, 以前刚学习32的时候测试过是可以的,,不过今天发现了一个大问 ...
- STM32 --- 什么时候打开复用IO的时钟(比如RCC_APB2Periph_AFIO)
需要用到外设的重映射功能时才需要使能AFIO的时钟,包括外部中断. 外部中断(EXTI)中与AFIO有关的寄存器是AFIO-EXTICR1.2.3,它们是用来选择EXTIx外部中断的输入脚之用. 举例 ...
- stm32 复位后 引起引脚的变化,输出电平引起的问题
在做项目的时候,需要通过蓝牙发送指令给STM32,使其复位,然后进入bootloader程序进行升级,但是复位后会导致蓝牙模块关机.stm32有个引脚连接着蓝牙的开关机引脚,高电平开机,低电平关机,我 ...
- STM32系列单片机IO口模式设置
STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和 ...
- STM32库函数编程、Keli/MDK、stm32f103zet6
catalogue . Cortex-M3地址空间 . 基于标准外设库的软件开发 . 基于固件库实现串口输出(发送)程序 . 红外接收实验 . 深入分析流水灯例程 . GPIO再举例之按键实验 . 串 ...
- LPC同STM32的比较
Cortex-M3是新兴起来的一种ARM7的核,而ARM7TDMI是一种传统的经典的ARM内核.我们就抛开这一切,来比较一下两则的异同. 我们就在以下平台上比较吧: STMicoelectronics ...
- 嵌入式单片机STM32应用技术(课本)
目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...
- 第4章 初识STM32
第4章 初识STM32 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...
随机推荐
- 我为啥开始用CSDN博客
今晚开通CSDN博客,并且决定以后每天都使用这个不错的东西.与此同时,在博客园也开通了一个:http://www.cnblogs.com/fish7/ 我原本是把做过的题都用WPS整理的,然后每次打印 ...
- /etc/hosts 详解
/etc/hosts:主机名查询静态表,是ip地址与域名快速解析的文件.ip地址与主机名之间的映射,包括主机的别名. 通常将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问. 如果没 ...
- N 种仅仅使用 HTML/CSS 实现各类进度条的方式
本文将介绍如何使用 HTML/CSS 创建各种基础进度条及花式进度条及其动画的方式,通过本文,你可能可以学会: 通过 HTML 标签 <meter> 创建进度条 通过 HTML 标签 &l ...
- Go语言核心36讲(Go语言实战与应用二)--学习笔记
24 | 测试的基本规则和流程(下) Go 语言是一门很重视程序测试的编程语言,所以在上一篇中,我与你再三强调了程序测试的重要性,同时,也介绍了关于go test命令的基本规则和主要流程的内容.今天我 ...
- 基于hadoop_yarn的资源隔离配置
目录 yarn的基本概念 scheduler 集群整体的资源定义 fair scheduler简介 配置demo 队列的资源限制 基于具体资源限制 基于权重资源限制 队列运行状态限制 基于用户和分组限 ...
- vue如何写组件(script标签引入的方式)
很多人知道.vue结构的单文件组件形式,不过这种单文件组件的结构如果要加入到现有的jquery项目中就比较麻烦了,那如果我们又想用vue来写模板,又不想引入vue-cli管理,那该怎么来写组件呢?别着 ...
- 菜鸡的Java笔记 第十八 - java 代码块
代码块 code block content (内容) 在程序结构之中使用"{}"定义的内容就称为代码块,但是会根据其声明的位置以及关 ...
- python实现圆检测
目录: (一)霍夫圆检测原理 (二)代码实现 (一)霍夫圆检测原理 (二)代码实现 1 #霍夫圆检测 2 import cv2 as cv 3 import numpy as np 4 5 def d ...
- [gym102900H]Rice Arrangement
(可以先阅读题目中关于顺逆时针的定义,避免理解错误) 考虑一盘菜$b_{i}$被$a_{j}$吃掉,对于其最后一次移动:如果是顺时针,则称$b_{i}$的移动区间为$[a_{j},b_{i}]$(若$ ...
- 深度学习,机器学习神器,白嫖免费GPU
深度学习,机器学习神器,白嫖免费GPU! 最近在学习计算机视觉,自己的小本本没有那么高的算力,层级尝试过Google的Colab,以及移动云的GPU算力,都不算理想.如果数据集比较小,可以试试Cola ...