(1/9)ledInit(); (GPIO的设置&&端口复用&&端口重映射)

目录 

ledInit();    

led.h

关于端口复用和重映射 :

         led.c



 

ledInit();    

   HARDWARE文件夹下 

led.h

#ifndef __LED_H
#define __LED_H	 
#include "sys.h"  //这里面定义了GPIO的地址 PBout  PBin 之类



#define LED_BLUE 		PBout(3)
#define LED_RED 		PBout(7)

void ledInit(void);/* LED初始化 */
			    
#endif

 

 

关于端口复用和重映射 :

stm32 将许多Cortex3的GPIO引脚扩展为外设形成stm32  可以复用为功能引脚;

                           复用步骤为:       使能总线时钟(例如串口1 PA9 PA10的时钟总线)

                                                 →使能复用时钟(直接使能 串口1复用时钟)

                                                 → 配置 串口1 参数

                                                 →查表配置复用功能下GPIO的输出状态

                                                  →初始化引脚

关于重映射:

led.c

#include "led.h"
void ledInit(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
 	
	/* 禁止JTAG调试功能,将PB3,PB4,PA15用作普通IO口,而保留PA13,PA14的SWD接口,使STM32单片机仍可下载程序与调试*///没太看懂PB3

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//复用功能使能
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//重映射(没接触过)
	
	/* 初始化LED  GPIO配置*/
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//GPIOB时钟使能
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_7;				 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	/* 关闭所有LED*/
	GPIO_SetBits(GPIOB,GPIO_Pin_3);			
	GPIO_SetBits(GPIOB,GPIO_Pin_7);
}


总结:

    ledInit()   配置了PB3 PB7两个引脚

    由于PB3牵涉到 JTAG的重映射 因此把它禁止;使能SWD口 可以下载程序

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值