解:点亮 (3)分析循环点亮LED代码,补充相应的注释。 解:点亮连接的PA2上的LED灯、熄灭...、点亮连接PA3上的LED、熄灭... (4)库函数GPIO_SetBits和GPIO_ResetBits的原形如下,用这两个函数重写循环点亮LED代码。第五章P107方法5反馈 收藏
GPIO_Init(LED_R_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = LED_B_GPIO_PIN; GPIO_Init(LED_B_GPIO_PORT, &GPIO_InitStruct); // 初始状态关闭所有LED灯 GPIO_SetBits(LED_R_GPIO_PORT, LED_R_GPIO_PIN); GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN); GPIO_SetBits(LED...
其中的GPIO时钟宏“__GPIOH_CLK_ENABLE()”和“__GPIOD_CLK_ENABLE()”是STM32 HAL库定义的GPIO端口时钟相关的宏,它的作用与“GPIO_PIN_x”这类宏类似,是用于指示寄存器位的,方便库函数使用。它们分别指示GPIOH、GPIOD的时钟,下面初始化GPIO时钟的时候可以看到它的用法。 2.控制LED灯亮灭状态的宏定义 为了...
#define PCin(n) *(unsigned int*)((GPIOC_IDR_Addr & 0xf0000000) + 0x02000000 + ((GPIOC_IDR_Addr &0x00ffffff)<<5) + (n<<2)) voidDelay(uint32_t count) { for(; count!=0; count--); } intmain(void) { //来到这里是,系统的时钟已经被配置到72MHz了 LED_GPIO_Config(); KEY...
LED 灯的控制使用到 GPIO 外设的基本输出功能,本章中不再赘述 GPIO 外设的概念,如您忘记了,可重读前面“GPIO 框图剖析”小节, STM32 标准库中 GPIO 初始化结构体GPIO_TypeDef 的定义与“定义引脚模式的枚举类型”小节中讲解的相同。 9.1 硬件设计:
*/intmain(void){/* LED 端口初始化 */LED_GPIO_Config();/* 控制LED灯 */while(1){speed(0x200000,3);speed(0x500000,2);speed(0xFFF000,1);}}voidDelay(__IOuint32_tnCount)//简单的延时函数{for(;nCount!=0;nCount--);}voidspeed(inttime,inttimes){for(i=0;i<times;i++){LED1(ON...
GPIO_ResetBits(GPIOx , GPIO_Pin_y)表示将Px(y)的引脚拉低; 二. 示例程序:通过控制引脚PB5输出高低电平实现led灯的亮灭。 登录后复制“bsp_led.c”//led驱动文件#include"bsp_led.h"voidLED_GPIO_Config(void){ GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , EN...
GPIO(General-Purpose IO ports,通用输入/输出接口),用于感知外界信号(输入模式)和控制外部设备(输出模式),如图 6.1.1 所示的STM32F103C8T6芯片四周的细引脚就是GPIO。 在嵌入式开发中,经常需要用到一些外部功能模块,比如LED、按键、蜂鸣器、温度传感器等,这些外设模块都比较简单,只需要MCU的GPIO与模块连接,控制引脚...
LED_GPIO_Config用户定义的初始化函数(bsp_led.c) STM32的每个I/O口都由7个寄存器控制:2个32位端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位复位寄存器BSRR;1个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR;最常用的有4个:CRL/CRH/IDR/ODR;因此通常情况下只需要配置好以上四个寄存器...