STM32江科大学习笔记

STM32江科大学习笔记-制作中...

  • GPIO操作
    • 其它的库函数
    • 输出流程
      • 输出的库函数
      • 输出的例子
    • 输入流程
      • 输入的库函数
      • 输入的例子
  • 栗子
    • 按键开关类
      • 1个按键-控制开跟关
      • 2个按键-分别控制开跟关
      • 按键双击事件
      • 按键长按事件
    • 外设模块类
      • 蜂鸣器
      • OLED屏幕
      • 光敏传感器
      • s90G舵机

GPIO操作

其它的库函数

以下是GPIO其它函数
/**
  * @brief  初始化指定的端口引脚
  * @param  GPIOx:设置的外设,其中x可以是(A到G)
  * @param  GPIO_InitStruct: 此参数为 GPIO_InitTypeDef 结构体
  * @retval 无
  */
GPIO_Init(GPIOx,&GPIO_InitStructure); 
以上是GPIO其它函数

输出流程

输出的库函数

以下是GPIO输出函数
/**
  * @brief  设置引脚为低电平
  * @param  GPIOx:设置的外设,其中x可以是(A到G)
  * @param  GPIO_Pin_x:选择的端口引脚,其中x可以是(0到15)。
  * @retval 无
  */
GPIO_ResetBits(GPIOx,GPIO_Pin_x);

/**
  * @brief  设置引脚为高电平
  * @param  GPIOx:设置的外设,其中x可以是(A到G)
  * @param  GPIO_Pin_x:选择的端口引脚,其中x可以是(0到15)。
  * @retval 无
  */
GPIO_SetBits(GPIOx, uint16_t GPIO_Pin_x);

/**
  * @brief  设置引脚为高电平或低电平
  * @param  GPIOx:设置的外设,其中x可以是(A到G)
  * @param  GPIO_Pin_x:选择的端口引脚,其中x可以是(0到15)。
  * @param  BitVal: 赋予引脚的状态,Bit_RESET 为低电平 | Bit_SET 为高电平
  * @retval 无
  */
GPIO_WriteBit(GPIOx,GPIO_Pin_x, BitAction BitVal);

/**
  * @brief  同时对16个引脚进行写入操作
  * @param  GPIOx:设置的外设,其中x可以是(A到G)
  * @param  PortVal: 16进制端口数据寄存器的值,如:~0x0001 //也就是 0000 0000 0000 0001,C语言不支持2进制,需要转换成16进制,最低位对应PA0往上依次是PA1、PA2...因为是低电平点亮,最后按位取反
  * @retval 无
  */
GPIO_Write(GPIOx,PortVal);

/**
  * @brief  读取输出引脚的值
  * @param  GPIOx:设置的外设,其中x可以是(A到G)
  * @param  GPIO_Pin_x:选择的端口引脚,其中x可以是(0到15)。
  * @retval 如果输出引脚为高电平返回1,低电平返回0
  */
GPIO_ReadOutputDataBit(GPIOx,GPIO_Pin_x)
以上是GPIO输出函数

输出的例子

点亮一个LED灯

硬件部分:
将LED灯的正极插入A0引脚,负极插入GND,也就是输出高电平灯亮

代码部分如下:

#include "stm32f10x.h"                  // Device header

int main(void)
{
   
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //开启APB2总线上的GPIOA
	
	GPIO_InitTypeDef GPIO_InitStruct; //自定义一个名为GPIO_InitStruct结构体变量,它的类型是GPIO_InitTypeDef
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; //模式为推挽输出
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; //引脚为GPIO_Pin_0
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //频率为GPIO_Speed_50MHz
	
	GPIO_Init(GPIOA,&GPIO_InitStruct); //对象选择GPIOA,然后将前面配置好的GPIO_InitStruct放进去,前面要加上取地址符&
	GPIO_SetBits(GPIOA,GPIO_Pin_0); //指定引脚设置为高电平
	//GPIO_ResetBits(GPIOA,GPIO_Pin_0);  //指定引脚设置为低电平		

你可能感兴趣的:(stm32,单片机,学习)