首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用bluepill开发板上的stm32f1xx_hal实现GPIO输出的外设初始化

为了实现GPIO输出的外设初始化,你可以使用bluepill开发板上的stm32f1xx_hal库。以下是一个完整和全面的答案:

外设初始化是指通过编程设置来配置特定硬件设备以实现所需功能的过程。在使用bluepill开发板上的stm32f1xx_hal库进行GPIO输出外设初始化时,需要按照以下步骤进行操作:

  1. 引入相关库文件:在项目中添加stm32f1xx_hal库文件,确保代码中可以使用相关函数和数据类型。你可以从官方网站下载该库文件,并将其添加到项目的相应目录下。
  2. 初始化外设时钟:在进行GPIO外设初始化之前,需要确保相应外设的时钟已经启用。可以使用RCC(Reset and Clock Control)模块来控制各个外设的时钟。
  3. 配置GPIO引脚:通过GPIO模块来配置具体的引脚。首先,选择需要初始化的引脚,并设置其对应的模式、速度和类型等参数。可以使用GPIO_InitTypeDef结构体来描述引脚的初始化参数。
  4. 初始化GPIO外设:通过调用相应的初始化函数,对所选的GPIO引脚进行初始化。使用HAL_GPIO_Init()函数来进行初始化,该函数接受GPIO端口和引脚号作为参数,并将之前配置的初始化参数应用到相应的引脚上。

以下是一个示例代码,展示了如何使用bluepill开发板上的stm32f1xx_hal库实现GPIO输出的外设初始化(以PB0引脚为例):

代码语言:txt
复制
#include "stm32f1xx_hal.h"

int main(void)
{
    HAL_Init();
    SystemClock_Config();

    // 初始化GPIO外设时钟
    __HAL_RCC_GPIOB_CLK_ENABLE();

    // 配置GPIO引脚
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.Pin = GPIO_PIN_0;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    // 设置GPIO引脚状态为高电平
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);

    while (1)
    {
        // 在这里可以进行其他操作
    }
}

在这个示例中,我们首先进行了必要的初始化操作(如HAL_Init()和SystemClock_Config()),然后启用了GPIOB的时钟。接下来,我们配置了PB0引脚为输出模式,并设置其初始状态为高电平。最后,通过HAL_GPIO_WritePin()函数将PB0引脚设置为高电平。

值得注意的是,以上示例仅展示了GPIO输出外设初始化的基本流程,具体的应用场景和优势取决于具体的项目需求。如果你需要进一步了解stm32f1xx_hal库以及其他与云计算相关的话题,你可以参考腾讯云的官方文档和产品介绍。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

串口通信—串口发送和接收代码讲解

初始化结构体和初始化库函数配合使用是标准库精髓所在,理解了初始化结构体每个成员意义基本就可以对该外设运用自如了。...首先,我们来编写一个程序实现开发板与电脑通信,在开发板电时通过USART 发送一串字符串给电脑,然后开发板进入中断接收等待状态,如果电脑有发送数据过来,开发板就会产生中断,我们在中断服务函数接收数据,...编程要点   使能RX 和TX 引脚GPIO时钟和USART 时钟;   初始化GPIO,并将GPIO 复用到USART ;   配置USART 参数;   配置中断控制器并使能USART 接收中断;...使用GPIO 之前都需要初始化配置它,并且还要添加特殊设置,因为我们使用它作为外设引脚,一般都有特殊功能。我们在初始化时需要把它模式设置为复用功能。...下载验证   保证开发板相关硬件连接正确,USB 线连接开发板USB 转串口跟电脑,在电脑端打开串口调试助手并配置好相关参数:115200 8-N-1,把编译好程序下载到开发板,此时串口调试助手即可收到开发板发过来数据

5.3K30

C 语言使用 HAL 库开发

相比标准外设库,HAL库具有更高抽象整合水平,API集中关注外设公共函数功能,使得可以轻松实现从一个STM32产品移植到另一个不同STM32系列产品。...本章涉及代码位于100ASK_STM32F103开发板资料“5_程序源码\0_单片机开发模式发展\2_C语 言使用HAL库开发\”。...()”函数,初始化需要GPIO,该函数定义在“driver_led.c”里,如代码段 6.5.2 所示; 15~21行:通过调用HAL提供“HAL_GPIO_WritePin”函数控制引脚输出电平高低...* 函数名:void LedGpioInit(void) * 输入参数:无 * 输出参数:无 * 返回值:无 * 函数作用:初始化 LED 引脚,配置为拉推挽输出 */ void LedGpioInit...B端口时钟; 13~23行:将GPIO属性封装为结构体,通过设置结构体成员属性,完成对GPIO设置; 以上代码就实现了对开发板三色灯红色灯交替闪烁效果,读者可以打开配套资料“5_程序源码\0_

1.7K20
  • C 语言使用标准库开发

    使用标准库通常不需要知道外设寄存器地址,只需要分析《开发板原理图》得知会用到哪一个引脚。...()”函数,初始化需要GPIO,该函数定义在“driver_led.c”里,如代码段 6.4.2 所示; 17~23行:循环修改GPIOB_ODR实现LED灯交替闪烁;这里不再涉及寄存器操作,只需要调用标准库提供...:无 * 函数作用:初始化 LED 引脚,配置为推挽输出 */ void LedGpioInit(void) { // 定义 GPIO 结构体变量 GPIO_InitTypeDef GPIO_InitStructure...()”,传入需要设置外设名字、是否使能; 13~22行:将GPIO属性封装为结构体,通过设置结构体成员属性,完成对GPIO设置; 以上代码就实现了对开发板三色灯红色灯交替闪烁效果,读者可以打开配套资料...使用标准库后,基本不涉及外设寄存器地址,同时提供很多函数实现相关功能操作,用户只要熟悉之后,很快就能举一反三,修改相关传入参数,实现自定义需求。

    1.6K20

    STM32新手入门教程

    STM32芯片内部可以粗略划分两部分:内核+片外设。如果与电脑类比,内核与片外设就如同电脑CPU与主板、内存、显卡、硬盘关系。...那个东西就是寄存器,其实不管我们库开发还是寄存器开发我们本质就是在控制寄存器每个位通断,并且这些寄存器都有其特定功能。...具有拉或下拉功能开漏输出 GPIO_Mode_Out_OD 具有拉或下拉功能推挽输出 GPIO_Mode_Out_PP 具有拉或下拉功能复用功能推挽 GPIO_Mode_AF_PP...具有拉或下拉功能复用功能开漏 GPIO_Mode_AF_OD 我STM32开发板板载两个LED小灯,电路图如下: GPIO配置 由于STM32GPIO工作模式有8种,所以在GPIO...输出之前要先对要操作GPIO进行配置: 定义GPIO初始化结构体类型 使能GPIO时钟 配置GPIO引脚 配置GPIO输出类型为推挽 配置GPIO输出速度

    1.9K30

    【STM32F407开发板用户手册】第18章 STM32F407GPIO应用之跑马灯

    由于将GPIO设置为输出时,GPIO输出寄存器值缺省是0,因此会驱动LED点亮,因此在改变GPIO输出前,先关闭LED指示灯。...电后串口打印信息: 波特率 115200,数据位 8,奇偶校验位无,停止位 1 程序设计: 系统栈大小分配: 硬件外设初始化 硬件外设初始化是在 bsp.c 文件实现: /* ********...该函数配置CPU寄存器和外设寄存器并初始化一些全局变量。...电后串口打印信息: 波特率 115200,数据位 8,奇偶校验位无,停止位 1 程序设计: 系统栈大小分配: 硬件外设初始化 硬件外设初始化是在 bsp.c 文件实现: /* ********...该函数配置CPU寄存器和外设寄存器并初始化一些全局变量。

    63520

    【嵌入式开发】LED 驱动 ( LED发光二极管原理 | 底板原理图分析 | 核心板原理图分析 | GPIO | 裸板程序烧写流程 )

    开发板 LED 灯 作用 : 嵌入式软件开发初期, 如 开发 BootLoader 代码 或者 Kernel 内核代码 过程中, 有效调试方法有限, 此时通常使用 开发板 LED 灯 作为...外设基地址初始化 ###( 1 ) C15 寄存器 简介 ---- C15 寄存器 : 英文全称 Peripheral Port Memory Remap Register, 外设端口内存映射寄存器...r0 指向地址内存中 ; 此时还未完成, 如果烧写该程序, 会出现无法点亮 LED 灯情况, OK6410 开发板还需要进行外设基地址初始化步骤; ---- ###(2) 外设端口基地址初始化...: ---- 外设端口基地址初始化 步骤 : 1.C15 寄存器 ( 外设端口内存映射寄存器 ) 简介 : 控制外设基地址寄存器是 C15 寄存器; 2.设置汇编模块标号 : 设置一个标号,...将电脑 与 开发板链接, USB 插在电脑端, 串口端插在 开发板, 插上电源适配器, 但是不要打开电源开关; 2.开发板设置 : 将开发板右侧开关设置成 SD 卡启动, 即 (1~8) 位置 :

    3K30

    C 语言操作寄存器开发

    在使用C语言操作寄存器前,仍需要先分析《开发板原理图》和《参考手册》,从而得知需要操作哪些外设寄存器,假设读者已经了解需要操作哪些外设寄存器。...使能 GPIOB 时钟 * GPIO 是挂载在 APB2 ,所以我们要使能 APB2 外设时钟使能位 * 芯片手册 113 页 RCC_APB2ENR 寄存器描述中我们可以看到 APB2ENR[...8:2]是 GPIO[G:A]时钟控制位,控制 GPIO 时钟是失能或者使能 * 开发板 LED GPIO 组是使用 GPIOB,即要使能 APB2ENR[3]位,为其赋值“1”即可打开 GPIOB...1~4行:宏定义了需要用到外设寄存器地址:RCC_APB2ENR、GPIOB_ CRL、GPIOB_ODR; 6~9行:循环递减传入变量i,实现延时效果; 13~15行:定义指针变量...以上代码就实现了对开发板三色灯红色灯交替闪烁效果,读者可以打开配套资料“5_程序源码\0_单片机编程模式发展\ 2_C语言操作寄存器开发\ Project\Led_Reg.uvprojx”工程,编译

    56910

    将鸿蒙上 Python 进行到底!

    所以,今天主题就是利用 GPIO 搭配 I2C 对外设进行编程。主要内容为:通过控制“智慧农业”外设传感器,获取当前环境温度和湿度。...这块外设 SHT30 是一个温度湿度传感器,它通过 I2C 与主控板(Hi3861)进行连接。 因此,SHT30 是一种 I2C 设备,只需要通过 I2C 接口就能轻易对它进行控制。...开发板已经提供了一堆用于普适输入输出 GPIO 了,所以没有必要为 I2C 提供专用物理线路, 只需要复用 GPIO 即可实现 I2C 通信!...当 GPIO 初始化完成,接下来就是对 I2C1 初始化了,方法很简单:将 I2C1 ID 和波特率作为参数调用 i2c_init(),可谓完全无难度。...鸿蒙 L0 设备目前通过复用 GPIO 方式提供 2 个 I2C 供使用。 当初始化正确完成,接下来就是读取 SHT30 实时数据了! 上面的代码非常简洁,但似乎不那么好理解!

    1.2K30

    SPI控制8_8点阵屏

    全双工通信数据输出和数据输入是同一个时钟信号同步。时钟信号由主设备通过SCK脚提供。 主机不能同时与多个从机通信。...在本文中,不需要配置具体读取过程,只需要同GPIO_Init一样,创建一个结构体,通过Init方法初始化即可。 只是因为,这款开发板配备了相关硬件。读写操作由硬件自动完成。...手动实现字节流和字符串输出函数,也是在调用这个方法。并没有像“显示红外键码”时那样按位操作。...红外键码中需要实现操作比较多,是因为开发板没有相关协议设备和寄存器,那个接收器只是用来接收38K滤波,判断0和1。...配置SPI 前面提到了,SPI已经被集成到这款开发板中,我们不需要手动去实现具体位操作过程。 只需要创建一个SPI_InitTypeDef类型结构体,把结构体配置项都给填上就可以。

    20910

    【STM32H7教程】第20章 STM32H7GPIO应用之无源蜂鸣器

    条件编译实现了一个无源蜂鸣器初始化,配置引脚为推挽输出模式。由于V7开发板使用无源蜂鸣器,所有没有开启宏定义BEEP_HAVE_POWER。...条件编译实现了一个无源蜂鸣器初始化,配置引脚为推挽输出模式。由于V7开发板使用无源蜂鸣器,所有没有开启宏定义BEEP_HAVE_POWER。...电后串口打印信息: 波特率 115200,数据位 8,奇偶校验位无,停止位 1 ? 程序设计: 系统栈大小分配: ? RAM空间DTCM: ?...硬件外设初始化 硬件外设初始化是在 bsp.c 文件实现: /* *******************************************************************...硬件外设初始化 硬件外设初始化是在 bsp.c 文件实现: /* *******************************************************************

    1.5K30

    STM32CubeMX系列 | 使用小熊派硬件SPI驱动W5500以太网模块

    准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备是STM32L4开发板(BearPi): ?...配置以太网模块控制GPIO 以太网模块需要额外配置GPIO有两个: 以太网模块引脚名 GPIO 作用 RST PC9 以太网模块硬复位 INT PA0 中断引脚 复位引脚配置为输出模式即可: ?...: ① 分频系数; ② CPOL:CLK空闲时候电平为高电平或者低电平; ③ CPHA:在第1个时钟边缘采样,还是在第2个时钟边缘采样; 接下来开始配置SPI1外设,首先配置SPI1外设模式和引脚:...SPI驱动接口实现 接着HAL库实现W5500驱动所需要8个SPI函数指针具体函数: /** * @brief enter critical section * @param none...芯片操作实现 基于官方驱动库编写芯片初始化函数,并设置socket发送和接收缓冲大小(默认2KB): /** * @brief Initializes WIZCHIP with socket buffer

    3.2K31

    【STM32H7教程】第18章 STM32H7GPIO应用之跑马灯

    由于将GPIO设置为输出时,GPIO输出寄存器值缺省是0,因此会驱动LED点亮,因此在改变GPIO输出前,先关闭LED指示灯。 注意事项: 大家会有疑惑,为什么这里没有初始化GPIO。...这是因为V7开发板是由74HC574驱动,不是CPUIO直接驱动,74HC574是一个8路并口缓冲器,挂在FMC总线上,实现IO扩展。 通过FMC总线扩展出IO来驱动,不是GPIO直接驱动。...硬件外设初始化 硬件外设初始化是在 bsp.c 文件实现: /* *******************************************************************...该函数配置CPU寄存器和外设寄存器并初始化一些全局变量。...硬件外设初始化 硬件外设初始化是在 bsp.c 文件实现: /* ******************************************************************

    81850

    STM32CubeMX教程之简介及基本使用

    STM32CubeMX是意法半导体推出图形化配置工具,通过傻瓜化操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等。...图3 开发板或者芯片选择 双击该开发板选项,会提示是否采用默认模式初始化所有外设,我选择YES,结果如图4所示。 图中可见,已经完成了初步配置,并且用不同颜色进行标识。...点开ADC1前面的加号,则能更清晰看到具体冲突ADC通道,如图6所示。 图5 ADC1警告 图6 ADC1具体冲突地方 同样,我们将鼠标光标放在 ,可以看到,图7所示提示。...图7 冲突导致某功能不能使用 由于本例使用了默认配置进行初始化,我们需要做工作就少了许多,在下一章节中将介绍更接近于实际应用工程创建方式。...图10 自己编写代码区域 本例实现LED灯LD2以1Hz频率连续闪烁,在while(1)中增加如下代码即可。

    2.5K40

    业内首发!感芯MC3172硬实时RISC-V芯片,还用啥RTOS!

    本文将从硬件和软件两个方向来进行评测,硬件主要介绍芯片外设开发板资源,软件介绍这颗芯片开发环境搭建,应用开发和调试,以及对芯片性能进行一个简单测试。 都有哪些内容?...遗憾是没有板载电源LED、用户LED、用户按键等基本外设,不过都把所有的GPIO都通过标准2.54mm间距排针引出来了,包括5v/3.3v/1.8v电源,也可以连接你想要扩展外部模块,比如液晶屏,...比如采集温湿度,通过显示屏进行展示,并上传到云平台,可以分为3个线程: 传感器驱动线程,完成初始化,定时获取传感器数据 显示线程,定时刷新显示数据值 网络驱动模块,完成网络模块初始化,定时将数据上传到云端...Hello World 开发环境搭建完成后,下载感芯MC3172 V1.21资料包,在模板例程基础,我们来实现一个Hello World工程,用到了GPIO和UART外设。...MC3172首款开发板配置也比较简单,没有用户外设,比如LED,按键,USB接口也没有串口功能,不方便调试等等,不能够对芯片本身资源做一个完整评估,软件开发环境还不支持程序下载和调试工具,多线程配置工具

    1.4K20

    基于StarterWareTMS320C6748裸机程序开发入门详解教程

    测试板卡为创龙科技TL6748-EVM开发板,它是一款基于TI TMS320C6748定点/浮点DSP C674x处理器设计开发板,由核心板和底板组成。...比如StarterWareinclude目录下头文件“gpio.h”,里面有很多相关函数声明,具体实现都是在StarterWaredrivers目录下gpio.c”文件里面。...源代码编写和解析将产品资料"Demo\StarterWare\Application\GPIO_LED\"目录下程序源码main.c内容复制到工程main.c文件中,或直接文件覆盖。...GPIO_DIR_OUTPUT定义GPIO方向为输出,可以在include目录下gpio.h查看定义输出输入标志,如下图所示。图 34配置GPIO数据寄存器。...GPIO_DIR_INPUT定义GPIO方向为输入,可以在include目录下egpio.h头文件查看定义输出输入标志。在技术参考手册可查看GPIO控制寄存器说明。如下图所示。

    1.3K50

    beaglebone ai底层原理分析:spl阶段

    此时由于外设都未初始化,只能在SRAM中执行程序。受到价格等因素影响,SRAM不可能做到很大,比如一般为4K/8K/16K等。...这么小内存使用,完全不能支持完整UBOOT运行起来,所以此时需要一个SPL阶段,初始化必要外设,关闭看门狗,关闭cache,初始化DDR,然后重定位UBOOT,让其在DDR中去执行,由于DDR内存容量很大...简单来说,SPL功能就是将uboot启动起来一个缓冲区。当然,如果在某些特定用法,完全可以SPL去引导kernel启动,这样可以大大减少系统启动时间。 ?...需要注意是,这个是与具体开发板实现密切相关,对于beaglebone ai来说,第一处位于arch\arm\mach-omap2\hwinit-common.c是spl阶段使用,第二处位于common...下面是收获结果 1.gpio模式配置(引脚复用功能)。 2.gpio输入、输出、中断配置。 模式配置可以看第18章节《Control Module》。

    1.1K10

    迅为2K1000龙芯开发板pmon 下操作 GPIO

    Uboot 这些资料非常多, 所以我们别的板子对于这个需求就没单独拿出来给大家讲, 但是龙芯是 pmon, pmon 上相关资料太少了, 所以有必要单独作为一章给大家讲解。...1 软硬件分析 这里以开发板 led3 给大家举例, 我们打开开发板底板原理图, 找到 led3 电路, 如下图所示: 通过硬件电路图我们可以发现, 当 LS2K_GPIO0 管脚输出为高电平时...开发板 Led3 连接管脚为 GPIO0, 其中 GPIO0~GPIO3 为专用 GPIO 管脚, 所以不需要设置复用, 如下图所示。 注意!...如果你不是专用 GPIO 引脚, 则需要设置复用关系!...下 c 文件里面的 initmips 函数初始化外设, 所以我们是不是只要在这里调用我们写 C 程序就可以了呢。

    68041

    手把手教你在FPGA搭建一个ARM Cortex-M3软核

    UART外设,使用Keil MDK环境开发应用程序,Jlink下载、调试ARM程序,最终实现效果是LED闪烁,串口输出Hello World信息。...UART外设 SWD接口引出 外设基地址分配 管脚分配 Bit流文件生成下载 Cortex-M3软核程序设计 新建Keil工程 GPIO输入输出控制实现 串口数据发送和接收实现 延时函数实现 Flash...IP核源码 3.硬件准备 为了完成DS CM3在FPGA搭建,我们至少需要以下硬件: 一块Artix-7™开发板,用于构建Cortex-M3软核SoC,我使用是正点原子达芬奇Pro开发板,FPGA...Xilinx官方提供AXI GPIO外设具有以下特性: 内部有两个通道,通道1和通道2,每个通道最多支持32个管脚 每个管脚可以配置成输入或输出模式 每个管脚可以设置复位初值 支持中断输出 提供AXI...输入输出控制 通过查看AXI GPIO使用手册,通道1数据寄存器偏移地址为0,通道2数据寄存器偏移地址为0x08,根据Vivado中连接,LED连接到通道1,按键连接到通道2,所以只需要对这两个寄存器地址进行读写

    3.5K20

    STM32-GPIO模式+寄存器点灯

    除此之外,还用在电平不匹配场合,如需要输出5 伏高电平,就可以在外部接一个拉电阻,拉电源为5 伏,并且把GPIO 设置为开漏模式,当输出高阻态时,由拉电阻和电源向外输出5 伏电平,具体见图STM32...拉了 前面提到双MOS 管结构电路输入信号,是由GPIO输出数据寄存器GPIOx_ODR”提供,因此我们通过修改输出数据寄存器值就可以修改GPIO 引脚输出电平。...其中输入模式,可设置为拉、下拉、浮空和模拟输入四种。 拉和下拉输入很好理解,默认电平由拉或者下拉决定。浮空输入电平是不确定,完全由外部输入决定,一般接按键时候是这个模式。...,但一般直接外设寄存器来获取该数据信号。...SystemInit 需要由我们自己实现,即我们要编写一个具有该名称函数,用来初始化STM32 芯片时钟,一般包括初始化AHB、APB 等各总线时钟,需要经过一系列配置STM32 才能达到稳定运行状态

    66430

    RISCV 汇编语言程序设计 (1) 跑马灯设计

    本文主要介绍汇编语言程序设计中跑马灯程序设计要求,GPIO概念和相关硬件知识,为之后分析汇编程序做准备。 1. 跑马灯设计: 使用汇编语言实现跑马灯。...设计要求:系统中有8个LED(汇编语言代码中使用寄存器x10),在risc-v cpu 硬件连接中, 我们将 LED[7:0] 连接到 risc-v cpu GPIO外设A组外设寄存器[7:0],...PRX100T开发板LED电路原理图 GPIO 外设地址设定为0xF000_0000,其中0xF000_0000为IO输入/输出寄存器,0xF000_0004为方向控制寄存器IO_dir[31:0]...理论上一个地址可以控制32个gpio管脚,但是实际开发板只能控制8个管脚,因为硬件只给cpu留了8个管脚资源,在该cpu0xf000_0000地址只有低8位值是有用。...理论输出模式下我们依然可以读取一个gpio端口值,但是因为是输出模式,读取会是刚才输出值。

    1.2K30
    领券