外部振荡器引脚OSC_IN/OSC_OUT可以用做GPIO的PD0/PD1,通过设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)实现。这个重映射只适用于36、 48和64脚的封装(100脚和144脚的封装上有单独的PD0和PD1的引脚,不必重映射)

注: 外部中断/事件功能没有被重映射。在36、 48和64脚的封装上, PD0和PD1不能用来产生外部中断/事件。

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); /*开启时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);/*开启复用的外设时钟使能*/
GPIO_PinRemapConfig(GPIO_Remap_PD01,ENABLE);/*映射PD01的使能*/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; /*浮空输入*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); /*开启时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);/*开启复用的外设时钟使能*/
GPIO_PinRemapConfig(GPIO_Remap_PD01,ENABLE);/*映射PD01的使能*/ /*开漏输出或复用开漏输出,不可设置为推挽输出或复用推挽输出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_SetBits(GPIOD, GPIO_Pin_0);
GPIO_SetBits(GPIOD, GPIO_Pin_1);

把OSC_IN/OSC_OUT引脚作为GPIO端口PD0/PD1的更多相关文章

  1. 吃了单片机GPIO端口工作模式的大亏 ——关于强推挽输出和准双向口(弱上拉)的实际应用

    最近公司在进行一个项目,需要用到超声波测距的功能,于是在做好硬件电路,但在写控制程序时,却遇上了令我费解的事情. 当在单片机最小系统上调好输出频率40kHz,占空比50%的方波输出信号后,将程序烧至超 ...

  2. Arduino数字引脚作为GPIO的使用

    引脚与GPIO的关系 引脚(pin)是对芯片的外部物理接口的一个称呼,它是在不把这个物理接口投入到具体应用场合下的称呼.例如,我们可以说,某某芯片的P1.5引脚可以作为数字输出驱动外部数字设备,也可以 ...

  3. GPIO——端口位设置/清除寄存器BSRR,端口位清除寄存器BRR

    端口位设置/复位寄存器BSRR: 注:如果同时设置了BSy和BRy的对应位,BSy位起作用. 位31:16  BRy: 清除端口x的位y (y = 0…15)      这些位只能写入并只能以字(16 ...

  4. 配置nRF52832 的NFC 专用引脚为 GPIO

    nRF52832 是支持NFC的,真可惜本码农没用过. NFC的引脚为 P0.09/P0.10,这两个引脚正常情况下是不能直接当做GPIO来用的,要用的时候,需要在编译环境配置一个宏. 下面是Keil ...

  5. STM32之GPIO端口位带操作

    #ifndef __SYS_H #define __SYS_H #include "stm32f10x.h" //位带操作 //把“位带地址+位序号”转换别名地址宏 #define ...

  6. GPIO端口上拉下拉 与 硬件图的上拉下拉

    硬件图上的上拉下拉: 没有触发时默认接到IO的是高电平就是上拉: 没有触发时默认接到IO的是低电平就是 下拉: (2)对应GPIO的配置 配置与你的外围电路息息相关: 比如下图: 你只能配置为上拉: ...

  7. HAL库直流电机编码测速(L298N驱动)笔记

    主函数开始后的处理流程: 1.外设初始化:HAL_Init() 2.系统时钟配置 RCC振荡器初始化:HAL_RCC_OsConfig() RCC时钟初始化:HAL_RCC_ClockConfig() ...

  8. 在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法

    如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空.2)对于少于100脚的产品,有2种接法:  2.1)OSC_I ...

  9. Arduino_URO端口与AtMega328p引脚对应图

    Arduino微控制器的数字端口和模拟端口与ATMEGA 328芯片引脚的对应关系图如下.标有0~13标号的引脚对应的是数字端口,在0~13前面有符号“~”的引脚对应的端口具有PWM输出功能.标有A0 ...

  10. STM32端口复用和映射

    STM32的功能引脚重映射和复用功能STM32中有很多内置外设的输入输出引脚都具有重映射(remap)的功能,本文对一些在使用引脚重映射时所遇到的有关问题加以说明.我们知道每个内置外设都有若干个输入输 ...

随机推荐

  1. Cascader 级联选择器 数据不回显

    这次的问题原因主要是因为  数据存在于两张表  并且索引的字段不同   一个为id(int)一个为字符(string) 在做修改操作数据回显的时候会导致  后端返回的数组中一个为字符一个为bumber ...

  2. docker打包java

    java1.8镜像 localtime文件为/etc/localtime 将本地此文件打包到docker镜像中 FROM openjdk:8-jdk-alpine MAINTAINER geyanan ...

  3. Django 之 ORM2

    1. 多表操作 1.1 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者 ...

  4. POJ 1830 开关问题 异或高斯消元

    题目链接 将题目转化为矩乘问题 构建一个 \(n \times n\) 的开关信息矩阵,其中第 \(i\) 列第 \(j\) 行的元素为 \(0 / 1\) 代表在改变开关 \(i\) 的情况下开关 ...

  5. c# HttpServer 的使用

    在很多的时候,我们写的应用程序需要提供一个信息说明或者告示功能,希望借助于HttpServer来发布一个简单的网站功能,但是又不想架一个臃肿的Http服务器功能, 这时候,标准框架提供的HttpSer ...

  6. Java的学前准备(2021.7.29)

    前言:Emm...已经是编程学习的Day2了(好像Day1不知道哪去了,或许是在考验我的记忆力呢 ).但所幸我依然可继续学习,内容如下. 一.J课程 电脑快捷键 Ctrl+ shift / C/ V/ ...

  7. 求两个自然数之间的最大公约数C++实现

    1 #include "pch.h" 2 #include <iostream> 3 using namespace std; 4 5 int main() 6 { 7 ...

  8. 前端本地 Nginx 反向代理

    一.问题引入 本地开发遇到线上bug,debug得stash代码切换分支,同时需切换开发环境与生产环境服务,npm run serve 或 npm start 费时 二.webpack-dev-ser ...

  9. Liunx安装eclipse-mosquitto之docker容器

    1.docker拉取 docker pull eclipse-mosquitto 2.查看镜像 docker images 3.建立配置目录 mkdir -p /mnt/mosquitto/confi ...

  10. 使用springboot+MybatisPlus+vue实现论文基础管理系统

    页面效果如下 分析所需内容 数据库信息如下 t_paper t_comment 好了 数据库搞定 新建Springboot项目 选择Spring Initializr pom文件增加引入下面这三个依赖 ...