首页 > 其他分享 >STM32 控制一盏灯的亮灭

STM32 控制一盏灯的亮灭

时间:2023-09-30 16:44:21浏览次数:36  
标签:一盏灯 Pin 控制 selected STM32 uint16 Mode GPIO define

#include "stm32f10x.h" // Device header

int main(void){
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;

 // typedef enum
 // { GPIO_Mode_AIN = 0x0,       //模拟输入
 // GPIO_Mode_IN_FLOATING = 0x04,   //浮空输入
 // GPIO_Mode_IPD = 0x28,      //下拉输入
 // GPIO_Mode_IPU = 0x48,      //上拉输入
 // GPIO_Mode_Out_OD = 0x14,    //漏极开路输出
 // GPIO_Mode_Out_PP = 0x10,    //推挽输出
 // GPIO_Mode_AF_OD = 0x1C,    //复用开漏
 // GPIO_Mode_AF_PP = 0x18     //复用推挽
 // }GPIOMode_TypeDef;

 


  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

//引脚

//  #define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
//  #define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
//  #define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
//  #define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
//  #define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
//  #define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
//  #define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
//  #define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
//  #define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
//  #define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
//  #define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
//  #define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
//  #define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
//  #define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
//  #define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
//  #define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
//  #define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

//  typedef enum
//  { 
//    GPIO_Speed_10MHz = 1,
//    GPIO_Speed_2MHz, 
//    GPIO_Speed_50MHz
//  }GPIOSpeed_TypeDef;
   GPIO_Init(GPIOA,&GPIO_InitStructure) //(外设,结构体的地址)
   GPIO_ResetBits(GPIOA,GPIO_Pin_0);//点亮
   GPIO_SetBits(GPIOA,GPIO_Pin_0);//熄灭

//  void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);            //对某一位写0
//  void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);          //对某一位写1
//  void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);    //对某一位写0/1【可以是枚举中的值或者Bit_RESET(0)或者Bit_SET(1)】

  while(1){

  }
}

 

 

推挽输出即P/N-MOS都导通

 

浮空输入

上拉输入

下拉输入

模拟输入

开漏输出

推挽输出

复用开漏输出

复用推挽输出

标签:一盏灯,Pin,控制,selected,STM32,uint16,Mode,GPIO,define
From: https://www.cnblogs.com/mofeibai/p/17738002.html

相关文章

  • 操作STM32的GPIO的步骤
    1.使用RCC开启GPIO的时钟2.使用GPIO_Init函数初始化GPIO3.使用输入/输出控制GPIO口RCC在library组中的 stm32f10x_rcc.h中找:(第一个参数是选择哪个外设,第二个参数是EABLE或者DISABLE)voidRCC_AHBPeriphClockCmd(uint32_tRCC_AHBPeriph,FunctionalStateNewStat......
  • 51单片机-独立按键控制电机
    #include"reg52.h"typedefunsignedintu16;typedefunsignedcharu8;sbitk1=P3^1;sbitk2=P3^0;sbitk3=P3^2;sbitk4=P3^3;sbitmotor=P1^0;voiddelay(u16i){while(i--);}voidmoto_run(){motor=......
  • QRes v1.1是由Anders Kjersem开发的一个工具,用于在Windows上更改分辨率。它提供了一些
    QResv1.1是由AndersKjersem开发的一个工具,用于在Windows上更改分辨率。它提供了一些命令行选项来控制分辨率、颜色深度和刷新率等参数。协助用户更改桌面分辨率,颜色深度和刷新率。具有命令行工具,无需启动GUI界面即可更改所有这些设置。显示使用情况信息并自动将配置保存在注册......
  • STM32CubeMX 生成的 Makefile 文件解析
    STM32CubeMX生成的Makefile文件解析Makefile的前置知识一个makefile是由一系列的规则(rule)组成的。一条完整的规则包括目标(target)、依赖(prerequistites)、方法(recipe):target...:prerequistites...recipe......依赖和方法不一定需要同......
  • aruba无线控制器配置和license备份
    备份配置备份系统导出备份到FTP导出license到FTP......
  • 机床控制更换刀具小算法
    很简单的一个小算法,大家看图分析分析下就懂了,感觉已经写的很清楚了,就不多说了。 主要的是上面的顺逆换刀判断,下面是我写的应用程序,可以参考下(可能描述的不太清楚,勉强看看吧,哈哈!!也是很简单的) 三菱SFC逆时针换刀程序:三菱SFC顺时针换刀程序:  本文章为原创作品,各路大佬......
  • ovn控制器初探
    一.OVN架构介绍OVN由以下组件构成:northbounddatabase:存储逻辑交换机、路由器、ACL、端口等的信息,目前基于ovsdb-server。ovn-northd:集中式控制器,负责把northbounddatabase数据分发到各个ovn-controller。ovn-controller:运行在每台机器上的本地SDN控制器southbounddatab......
  • 基于三菱Q系列cc-Link的立体仓库控制系统
    系统说明:    方案选择:  工艺流程:  触摸屏设计: 程序设计:采用SFC进行编程,结构清晰,逻辑明了   本文章为原创作品,转载请注明出处,否则将会追究法律责任。 ......
  • 如何选择米尔基于STM32MP1系列核心板和开发板
    一款合适的处理器,是每个工程师在开发设计前期调研必须面对的难题。而如何挑选一款符合产品开发的处理器呢?今天我们就以ST公司的STM32MP1系列处理器进行分析比较。ST公司目前已经发布了两款不同类型的MPU芯片,分别是STM32MP15系列和STM32MP13系列。这两款芯片的特点十分鲜明:STM32MP......
  • 基于三菱Q系列cc-Link的卧式自动燃煤蒸汽锅炉控制系统
    系统说明: 方案选用:本系统最终采用三菱Q系列+FX3U系列方案 工艺流程: 触摸屏设计: 程序设计:本文章为原创作品,未经允许,请勿转载,否则将会追究法律责任。 ......