STM32江科大学习笔记

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);  //指定引脚设置为低电平		
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
嗨!对于学习STM32笔记,我可以给你一些基本的指导。首先,你需要了解STM32是一系列由STMicroelectronics公司开发的32位微控制器。它们具有广泛的应用领域,包括嵌入式系统、物联网和工业自动化等。 在学习STM32时,你可以按照以下步骤进行: 1. 硬件准备:获取一块STM32开发板,例如STM32F4 Discovery或NUCLEO系列。这些开发板通常带有一些外设和接口,便于学习和实验。 2. 开发环境搭建:下载并安装Keil MDK或者IAR Embedded Workbench等集成开发环境(IDE)。这些IDE提供了编译器、调试器和其他工具,方便你编写和调试STM32的代码。 3. 学习基本知识:了解STM32的体系结构、寄存器和外设等基本知识。可以通过阅读相关的参考手册、数据手册和应用笔记来深入了解。 4. 编写代码:使用C/C++语言编写STM32的应用程序。你可以使用相关的库函数来简化开发过程,如标准外设库(StdPeriph Library)或者新的STM32Cube库。 5. 调试和测试:使用调试器和仿真器来调试和测试你的代码。这些工具能够帮助你单步执行代码、观察寄存器和内存的状态,以及检查外设的操作。 6. 实践项目:尝试一些小型的项目,如LED闪烁、按键输入和PWM输出等,以巩固你的学习成果。随着经验的积累,你可以尝试更复杂的项目,如通信接口、传感器应用和无线通信等。 记得在学习过程中多查阅官方文档、参考资料和在线论坛,以便解决遇到的问题。祝你学习STM32的旅程愉快!如果你有具体的问题,欢迎随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值