4-STM32单片机IO端口编程参考幻灯片课件

上传人:29 文档编号:191392639 上传时间:2023-03-03 格式:PPT 页数:69 大小:2MB
返回 下载 相关 举报
4-STM32单片机IO端口编程参考幻灯片课件_第1页
第1页 / 共69页
4-STM32单片机IO端口编程参考幻灯片课件_第2页
第2页 / 共69页
4-STM32单片机IO端口编程参考幻灯片课件_第3页
第3页 / 共69页
点击查看更多>>
资源描述
第2章 STM32单片机IO端口编程2.1 STM32单片机管脚和命名规则2.2 STM32单片机时钟配置2.3 STM32单片机I/O端口配置2.4 STM32单片机单片机I/O端编程步骤1?STM32单片机单片机管脚管脚?STM32系列单片机系列单片机命名规则2.1 STM322.1 STM32单片机管脚和命名规则单片机管脚和命名规则2PA口16脚PB口16脚PC口3脚PD口2脚STM32F103CBT6 共有37个I/O管脚:PA口 16脚+PB口16脚+PC口3脚+PD口2脚。?STM32单片机管脚:以STM32F103Cx为例,采用的封装形式LQFP483一般而言,嵌入式系统在工作前,都要进行初始化工作,其中包括调用RCC_Configuration(复位和时钟设置)函数。用于系统复位和初始化STM32系列微控制器的时钟。2.2 STM322.2 STM32单片机时钟配置单片机时钟配置2.2.1 STM322.2.1 STM32时钟系统时钟系统2.2.2 2.2.2 RCC_ConfigurationRCC_Configuration(复位和时钟设置)(复位和时钟设置)函数函数4STM32系列微控制器中,有5个时钟源:HSI (High Speed Internal):高速内部时钟、HSE(High Speed External):高速外部时钟、LSI(Low Speed Internal):低速内部时钟、LSE(Low Speed External):低速外部时钟、PLL(Phase Locked Loop):锁相环倍频输出。其中的HSI、HSE、或PLL可被用来驱动系统时钟。其中的LSI、LSE作为二级时钟源。STM32时钟系统结构图(P56)2.2.1 STM32时钟系统5?外设总线:包括APB1(Advanced Peripheral Bus 1)和APB2(Advanced Peripheral Bus 2)APB2:用于高速外设APB1:用于低速外设?AMBA片上总线:已成为一种流行的工业片上总线标准。它包括AHB(Advanced High performance Bus)和APB(Advanced Peripheral Bus),前者作为系统总线,后者作为外设总线。7STM32系统结构图连接在APB1(低速外设)上的设备:有连接在APB2(高速外设)上的设备:有连接在AHB(Advanced High performance Bus)上的设备:有81、使能 挂接在APB1 总线上的外设 对应的时钟 命令:RCC_APB1PeriphClockCmd()函数例如,使能TIM2对应的时钟:RCC_APB1PeriphClockCmd(RCC_ APB1Periph_ TIM2,ENABLE);RCC_APB2PeriphClockCmd()函数2、使能 挂接在APB2 总线上的外设 对应的时钟 命令:例如,使能GPIO端口对应的时钟:RCC_APB2PeriphClockCmd(RCC_ APB2Periph_ GPIOB|RCC_APB2Periph_GPIOE,ENABLE);93、使能 挂接在AHB总线上的外设 对应的时钟 命令:RCC_AHBPeriphClockCmd()函数例如,使能DMA对应的时钟:RCC_AHBPeriphClockCmd(RCC_ AHBPeriph_ DMA,ENABLE);10使用操作符“|”可以一次选中上表中的一个或多个取值的组合作为该参数的值。11STM32F103xx增强型模块框图13基于ARM Cortex内核的MCU 和 普通的8/16位单片机在系统结构上 最大区别:普通的8/16位单片机:只有1个系统时钟频率,而基于ARM Cortex 内核的MCU:具有多个时钟频率,分别供给内核 和和 不同外设模块使用。本课程的学习难点之一:就是ARM时钟 比比 单片机时钟 复杂得多。复杂得多。为什么ARM时钟这么复杂?14原因二:时钟分开有助于实现 低功耗。原因一:高速时钟供中央处理器等高速设备使用,低速时钟供外设等低速设备使用。15时钟输出使能STM32处理器因为低功耗低功耗的需要,各模块需要分别独立开启时钟。当需要使用某个外设模块时,记得一定要当需要使用某个外设模块时,记得一定要先使能对应的时钟。先使能对应的时钟。否则,这个外设不能工作。162.2.2 R RC CC_Configuration()函数1、RCC复位和时钟配置寄存器组2、枚举类型ErrorStatus3、RCC_Configuration():(复位和时钟设置)函数(Reset and Clock Configuration(),复位和时钟设置 函数)17STM32单片机的复位和时钟设置:共包括10个设置寄存器一个32位的时钟控制寄存器(RCC_CR)一个32位的时钟配置寄存器(RCC_CFGR)一个32位的时钟中断寄存器(RCC_CIR)一个32位的APB2外设复位寄存器(RCC_APB2RSTR)一个32位的APB1外设复位寄存器(RCC_APB1RSTR)一个32位的AHB外设时钟使能寄存器(RCC_AHBENR)一个32位的APB2外设时钟使能寄存器(RCC_APB2ENR)一个32位的APB1外设时钟使能寄存器(RCC_APB1ENR)一个32位的备份域控制寄存器(RCC_BDCR)一个32位的控制/状态寄存器(RCC_CSR)Backup domain control register(RCC_BDCR)详见参考手册 V10_1 第P6018编程时,时钟的具体配置是从RCC(Reset and Clock Configuration,复位和时钟配置)寄存器组开始。在固件库中,用结构体RCC_TypeDef 定义 RCC寄存器组:在文件“stm32f10 x_map.h”中,定义如下:/*-Real-Time Clock-*/typedef structvu32 CR;vu32 CFGR;vu32 CIR;vu32 APB2RSTR;vu32 APB1RSTR;vu32 AHBENR;vu32 APB2ENR;vu32 APB1ENR;vu32 BDCR;vu32 CSR;RCC_TypeDef;1、RCC复位和时钟配置寄存器组19/*Peripheral base address in the bit-band region*/#define PERIPH_BASE (u32)0 x40000000)/*Peripheral memory map*/#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE+0 x1 0000)#define AHBPERIPH_BASE (PERIPH_BASE+0 x2 0000)#define RCC_BASE (AHBPERIPH_BASE+0 x1000)#ifdef _RCC#define RCC(RCC_TypeDef*)RCC_BASE)#endif /*_RCC*/?该宏定义的功能:在程序中,所有写RCC的地方,编译器的预处理程序,都将它替换为:(RCC_TypeDef*)0 x40021000)202、枚举类型ErrorStatus 在文件“stm32f10 x_type.h”中,包含typedef enum ERROR=0,SUCCESS=!ERROR ErrorStatus;该语句,定义了新枚举类型名ErrorStatus,代表左侧定义的枚举类型。?213、RCC_Configuration(复位和时钟设置)函数:在“HelloRobot.h”中ErrorStatus HSEStartUpStatus;void RCC_Configuration(void)/*将外设RCC寄存器组重新设置为默认值,即复位。RCC system reset*/RCC_DeInit();/*打开外部高速时钟晶振外部高速时钟晶振HSE,Enable HSE*/RCC_HSEConfig(RCC_HSE_ ON);/*等待HSE外部高速时钟晶振稳定,或者在超时的情况下退出,Wait till HSE is ready*/HSEStartUpStatus=RCC_WaitForHSEStartUp();if(HSEStartUpStatus=SUCCESS)/SUCCESS:HSE晶振稳定就绪/*设置AHB时钟=SYSCLK=48 MHz,HCLK(即 AHB时钟)=SYSCLK*/RCC_HCLKConfig(RCC_SYSCLK_Div1);/*设置高速PCLK2时钟(即APB2 clock)=AHB时钟/2=24 MHz,PCLK2=HCLK/2*/RCC_PCLK2Config(RCC_HCLK_Div2);枚举类型变量22/*设置低速PCLK1时钟(即APB1 clock)=AHB时钟/4=12 MHz,PCLK1=HCLK/4*/RCC_PCLK1Config(RCC_HCLK_Div4);/RCC_HCLK_Div4:APB1 clock=HCLK/4=12MHz,此处不同于鸥鹏公司的程序(=36MHz)/*设置Flash 延时时钟周期数:为2*/FLASH_SetLatency(FLASH_Latency_2);/*Enable Flash Prefetch Buffer 预取指令指令缓冲区,这2句与RCC没有关系*/FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);/*利用锁相环将HSE外部8MHz晶振6倍频到48 MHz,作为PLLCLK。PLLCLK=8MHz*6=48 MHz*/RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_6);/此处不同于鸥鹏公司的程序:PLLCLK=8MHz*6=48 MHz/*Enable PLL*/RCC_PLLCmd(ENABLE);23/*Wait till PLL is ready,等待 锁相环 输出稳定*/while(RCC_GetFlagStatus(RCC_FLAG_PLL RDY)=RESET)/*Select PLL as system clock source*/选择PLLCLK 作为SYSCLK,所以SYSCLK为48 MHzRCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/*Wait till PLL is used as system clock source*/while(RCC_GetSYSCLKSource()!=0 x08)/*Enable peripheral clocks-*/*GPIOA,GPIOB and SPI1 clock enable*/RCC_APB2Periph Clock Cmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_SPI1,ENABLE);/*Enable GPIOC,GPIOD clock*/RCC_APB2Periph Clock Cmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD,ENABLE);24以上所见的固件库函数:详见“中文版:STM32F10 xxx_固件库函数 V2.pdf P193”固件库函数的具体实现:见文件“stm32f10 x_rcc.h”25其中RCC_DeInit();/*Function Name :RCC_DeInit*Description :Resets the RCC clock configuration to the default reset state.*Input :None*Output :None*Return :None*/void RCC_DeInit(void)/*Set HSION bit*/RCC-CR|=(u32)0 x00000001;/*Reset SW1:0,HPRE3:0,PPRE12:0,PPRE22:0,ADCPRE1:0 and MCO2:0 bits*/RCC-CFGR&=(u32)0 xF8FF0000;26272.3 STM322.3 STM32单片机单片机I/OI/O端口配置端口配置2.3.12.3.1 STM32单片机的 I/OI/O端口和管脚2.3.22.3.2 STM32单片机的 I/OI/O端口配置282.3.1 STM32单片机的 I/O端口和管脚STM32单片机 最多有7个16位的并行 I/O端口:PA、PB、PC、PD、PE、PF、PG。STM32F103Cx单片机 只有4个16位的并行 I/O端口:PA、PB、PC、PD。29PA口16脚PB口16脚PC口3脚PD口2脚STM32F103CBT6 包含4个端口:PA口、PB口、PC口、PD口,共有37个I/O管脚:PA口 16脚+PB口16脚+PC口3脚+PD口2脚。?STM32单片机的单片机的I/O端口和管脚:以STM32F103Cx为例30每个每个GPIOx端口端口:共有共有7 7个设置寄存器两个32位的配置寄存器(GPIOx_CRL,GPIOx_CRH)(GPIOx_CRL)(x=A.G):GPIOx configuration register low,GPIOx端口低配置寄存器,用于配置GPIOx端口的第0位第7位。两个32位的数据寄存器(GPIOx_IDR,GPIOx_ODR)(GPIOx_IDR)(x=A.G):GPIOx input data register一个32位的置位/复位寄存器(GPIOx_BSRR)(GPIOx_BSRR)(x=A.G):GPIOx bit set/reset register一个16位的复位寄存器(GPIOx_BRR)一个32位的锁定寄存器(GPIOx_LCKR)(GPIOx_LCKR)(x=A.G):GPIOx configuration lock register31在MCS-51单片机中,每个IO端口:只有1个设置寄存器P0端口:P0端口寄存器-P0,P1端口:P1端口寄存器-P1,P2端口:P2端口寄存器-P2,P3端口:P3端口寄存器-P3。对应STM32单片机的数据寄存器两个32位的数据寄存器(GPIOx_IDR,GPIOx_ODR)(GPIOx_IDR)(x=A.G):GPIOx input data registerMCS-51单片机I0端口的输入、输出数据寄存器 共用1个寄存器Px,而STM32单片机的输入、输出数据寄存器是 分开的。32MCS-51单片机的特殊功能寄存器33在固件函数库的“stm32f10 x_map.h”文件中,对应的定义:/*-General Purpose IO-*/typedef structvu32 CRL;/configuration register low(GPIOx_CRL)(x=AE)vu32 CRH;vu32 IDR;vu32 ODR;vu32 BSRR;vu32 BRR;vu32 LCKR;GPIO_TypeDef;/用结构体GPIO_TypeDef定义GPIOx端口,(即定义 GPIOx端口的7个设置寄存器)342.3.2 STM32单片机的 I/O端口配置5、在使用GPIO端口时,首先要使能该外设对应的时钟1、GPIOx 端口定义2、GPIO_Pin_x 管脚定义3、GPIO_InitTypeDef 初始化端口参数 定义4、GPIO_Init 初始化端口定义6、GPIO编程 步骤351、编程时,GPIOx端口的具体配置是从GPIOA、GPIOB、GPIOC、GPIOD、或 GPIOE寄存器组开始。首先,在固件库中,用结构体GPIO_TypeDef定义GPIOx端口,(即定义GPIOx端口的7个设置寄存器):在文件“stm32f10 x_map.h”中,定义如下:/*-General Purpose IO-*/typedef structvu32 CRL;/configuration register low32(GPIOx_CRL)(x=AE)vu32 CRH;vu32 IDR;vu32 ODR;vu32 BSRR;vu32 BRR;vu32 LCKR;GPIO_TypeDef;/用结构体GPIO_TypeDef定义 GPIOx端口/或称用结构体GPIO_TypeDef定义 GPIOx寄存器组GPIOx端口的7个设置寄存器36端口配置低寄存器(GPIOx_CRL)(x=A.E):37表表3.11:端口位配置表配置模式CNF1CNF0MODE1:0MODE1:0PxODR寄存器通用输出推挽00011011参照表3.120或1开漏10或1复用功能输出推挽10任意开漏1任意输入模拟输入0000任意输入浮空1任意输入下拉100输入上拉1表表3.12:输出模式位MODE1:0MODE1:0含义00保留01最大输出速率10MHz10最大输出速率2MHz11最大输出速率50MHz38#define GPIO A_BASE (APB2PERIPH_BASE+0 x0800)#define GPIO B_BASE (APB2PERIPH_BASE+0 x0C00)#define GPIO C_BASE (APB2PERIPH_BASE+0 x1000)#define GPIOD_BASE (APB2PERIPH_BASE+0 x1400)#define GPIOE_BASE (APB2PERIPH_BASE+0 x1800)#define GPIOF_BASE (APB2PERIPH_BASE+0 x1C00)#define GPIOG_BASE (APB2PERIPH_BASE+0 x2000)GPIOA、GPIOB、GPIOC、GPIOD、或 GPIOE寄存器组的首地址:/*Peripheral base address in the bit-band region*/#define PERIPH_BASE (u32)0 x40000000)/*Peripheral memory map*/#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE+0 x10000)#define AHBPERIPH_BASE (PERIPH_BASE+0 x20000)0 x400110000 x400108000 x40010C000 x400114000 x400118000 x40011C000 x4001200039#ifdef _GPIOA#define GPIOA(GPIO_TypeDef*)GPIOA_BASE)#endif/*_GPIOA*/#ifdef _GPIOB#define GPIOB (GPIO_TypeDef*)GPIOB_BASE)#endif/*_GPIOB*/#ifdef _GPIOC#define GPIOC(GPIO_TypeDef*)GPIOC_BASE)#endif/*_GPIOC*/#ifdef _GPIOD#define GPIOD(GPIO_TypeDef*)GPIOD_BASE)#endif/*_GPIOD*/#ifdef _GPIOE#define GPIOE(GPIO_TypeDef*)GPIOE_BASE)#endif/*_GPIOE*/#ifdef _GPIOF#define GPIOF(GPIO_TypeDef*)GPIOF_BASE)40在文件“stm32f10 x_gpio.h”中,定义2、GPIO_Pin_x 管脚 定义:/*Exported constants-*/*GPIO pins define-*/#define GPIO_Pin_0(u16)0 x0001)/*Pin 0 selected*/#define GPIO_Pin_1 (u16)0 x0002)/*Pin 1 selected*/#define GPIO_Pin_2 (u16)0 x0004)/*Pin 2 selected*/#define GPIO_Pin_3 (u16)0 x0008)/*Pin 3 selected*/#define GPIO_Pin_4 (u16)0 x0010)/*Pin 4 selected*/#define GPIO_Pin_5 (u16)0 x0020)/*Pin 5 selected*/#define GPIO_Pin_6 (u16)0 x0040)/*Pin 6 selected*/#define GPIO_Pin_7 (u16)0 x0080)/*Pin 7 selected*/#define GPIO_Pin_8 (u16)0 x0100)/*Pin 8 selected*/#define GPIO_Pin_9 (u16)0 x0200)/*Pin 9 selected*/#define GPIO_Pin_10 (u16)0 x0400)/*Pin 10 selected*/#define GPIO_Pin_11 (u16)0 x0800)/*Pin 11 selected*/#define GPIO_Pin_12 (u16)0 x1000)/*Pin 12 selected*/#define GPIO_Pin_13(u16)0 x2000)/*Pin 13 selected*/#define GPIO_Pin_14 (u16)0 x4000)/*Pin 14 selected*/#define GPIO_Pin_15 (u16)0 x8000)/*Pin 15 selected*/#define GPIO_Pin_All (u16)0 xFFFF)/*All pins selected*/41使用使用按位或按位或运算符运算符“|”可以一次选中多个管脚。可以一次选中多个管脚。可以使用上表中的任意组合。组合。423、GPIO_InitTypeDef 初始化端口参数 定义(1)枚举类型GPIOSpeed_TypeDef:用于定义GPIO管脚 的 响应速度(2)枚举类型GPIOMode_TypeDef:用于定义GPIO管脚 的 工作模式(3)结构体GPIO_InitTypeDef:用于初始化端口参数难点43在文件“stm32f10 x_gpio.h”中,定义:typedef enum GPIO_Speed_10MHz=1,GPIO_Speed_2MHz,GPIO_Speed_50MHzGPIOSpeed_TypeDef;/定义GPIO管脚 的 响应速度(1)枚举类型GPIOSpeed_TypeDef:用于定义GPIO管脚 的 响应速度?44typedef enum GPIO_Mode_AIN=0 x 0,GPIO_Mode_IN_FLOATING=0 x0 4,GPIO_Mode_IPD=0 x28,GPIO_Mode_IPU=0 x48,GPIO_Mode_Out_OD=0 x1 4,GPIO_Mode_Out_PP=0 x1 0,GPIO_Mode_AF_OD=0 x1C,GPIO_Mode_AF_PP=0 x1 8GPIOMode_TypeDef;/定义GPIO管脚 的 工作模式(2)枚举类型GPIOMode_TypeDef:用于定义GPIO管脚 的 工作模式45STM32单片机的每一个输入/输出引脚(即GPIO端口的每一位)可以配置成以下8种模式(4输入+2输出+2复用输出):STM32单片机的GPIO端口模式:?输入浮空:IN_FLOATING?输入上拉:IPU(In Push-Up)?输入下拉:IPD(In Push-Down)?模拟输入:AIN(Analog In)?开漏输出:Out_OD(Open Drain Output)?推挽式输出:Out_PP(Push-Pull Output)?推挽式复用功能:AF_PP(Push-Pull Output Alternate-Function)?开漏复用功能:AF_OD(Open Drain Output Alternate-Function)输入输出复用输出47/*Configuration Mode enumeration-*/typedef enum GPIO_Mode_AIN =0 x 0,GPIO_Mode_IN_FLOATING=0 x04,GPIO_Mode_IPD =0 x28,GPIO_Mode_IPU =0 x48,GPIO_Mode_Out_OD =0 x1 4,GPIO_Mode_Out_PP =0 x1 0,GPIO_Mode_AF_OD =0 x1 C,GPIO_Mode_AF_PP =0 x1 8GPIOMode_TypeDef;/定义GPIO管脚 的 工作模式工作模式:用低4位 区分。输入输出输入、输出:高4位为1-输出,否则为输入。48I/O端口位位的基本结构输入数据寄存器输出数据寄存器位置位/复位寄存器49I/O端口位的输入电路I/O端口位的输出电路50I/O端口位位的输入输入电路电路I/O端口位的浮空/上拉/下拉输入电路I/O端口位的高阻抗模拟输入电路51图图3.11:I/O端口位的输入浮空/上拉/下拉配置下拉配置激活施密特触发输入输出缓冲器被禁止根据输入配置(上拉,下拉或浮空)的不同,弱上拉和下拉电阻被连接在每个APB2 时钟周期,出现在I/O 脚上的数据被采样到输入数据寄存器52-参见“!STM32F10 x_中文版_参考手册 V10_1(2010年1月10日).pdf”P108?53图3.14:I/O端口位的高阻抗模拟输入配置输出缓冲器被禁止禁止施密特触发输入。施密特触发输出值被强置为 0弱上拉和下拉电阻被禁止读取输入数据寄存器时数值为 054?55I/O端口位位的输出输出电路电路I/O端口位位的开漏输出电路I/O端口位的推挽输出电路I/O端口位的复用功能的推挽输出电路和开漏输出电路56图3.12 I/O端口位的开漏输出配置开漏模式:P-MOS 从不被激活,仅N-MOS 工作。开漏模式:输出寄存器上的 0激活N-MOS,输出低电平;而输出寄存器上的 1将端口置于高阻状态(P-MOS 从不被激活)。?激活施密特触发输入在每个APB2 时钟周期,出现在I/O 脚上的数据被采样到输入数据寄存器57图3.12 I/O端口位的推挽输出配置推挽模式:输出寄存器上的 0激活N-MOS,而输出寄存器上的 1将激活P-MOS。激活施密特触发输入弱上拉和下拉电阻被禁止在每个APB2 时钟周期,出现在I/O 脚上的数据被采样到输入数据寄存器58?59图3.13:I/O端口位的复用功能配置激活施密特触发输入弱上拉和下拉电阻被禁止在每个APB2 时钟周期,出现在I/O 脚上的数据被采样到输入数据寄存器复用功能Input到片上外设自片上外设60?如果把端口配置成复用输出功能,则引脚和输出寄存器断开,如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。并和片上外设的输出信号连接。?6163/*GPIO Init structure definition*/typedef structu16 GPIO_Pin;GPIOSpeed_TypeDef GPIO_Speed;GPIOMode_TypeDef GPIO_Mode;GPIO_InitTypeDef;/用于初始化GPIOx端口的参数(包括管脚号、管脚响应速度、管脚工作模式)(3)结构体GPIO_InitTypeDef:用于初始化端口参数64比较结构体GPIO_TypeDef 和GPIO_InitTypeDef:65664、GPIO_Init 初始化端口 定义功能:根据GPIO_InitTypeDef 中指定的参数,初始化外设GPIOx端口例如,GPIO_InitTypeDef GPIO_InitStructure;/定义结构体变量GPIO_InitStructure,用于初始化GPIOx端口的参数GPIO_Init(GPIOC,&GPIO_InitStructure);/初始化GPIOC端口67/*Function Name :GPIO_Init*Description :Initializes the GPIOx peripheral according to the specified*parameters in the GPIO_InitStruct.*Input :-GPIOx:where x can be(A.G)to select the GPIO peripheral.*-GPIO_InitStruct:pointer to a GPIO_InitTypeDef structure that*contains the configuration information for the specified GPIO*peripheral.*Output :None*Return :None*/void GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)u32 currentmode=0 x00,currentpin=0 x00,pinpos=0 x00,pos=0 x00;u32 tmpreg=0 x00,pinmask=0 x00;/*Check the parameters*/assert_param(IS_GPIO_ALL_PERIPH(GPIOx);assert_param(IS_GPIO_MODE(GPIO_InitStruct-GPIO_Mode);assert_param(IS_GPIO_PIN(GPIO_InitStruct-GPIO_Pin);/*-GPIO Mode Configuration-*/68692.4 STM322.4 STM32单片机单片机I/OI/O端编程步骤端编程步骤GPIOx端口端口 编程步骤编程步骤70第2章 STM32单片机IO端口编程2.1 STM32单片机管脚和命名规则2.2 STM32单片机时钟配置2.3 STM32单片机I/O端口配置2.4 STM32单片机单片机I/O端编程步骤711、Cortex-M3 芯片STM32F103ZEH7的含义?2、请写出使能USART1外设对应的时钟命令。3、简述你对GPIO管脚 的 工作模式的理解。4、编写程序,实现循环点亮连接在PA口的16个管脚上的发光二极管。电路详见下面。作业:725v。73
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!