
STM32指示灯STLINK插在电脑上STM32的PWR指示灯是电源灯会一直亮另一个连接在PC13口的灯默认是闪烁状态这是芯片里的一个测试程序。Kile5配置调试器1.点击main上面的魔术棒按钮2.点击Debug找到Debug下面的Use默认调试是ULINK改为ST-Link Debugger然后再点击右边的Settings设置按钮3.点击上面的Flash Download选中下面的Reset and Run 选中之后我们下载程序后会立马复位并执行。下载程序的按钮点击LOAD下载程序下载之后PC13口的指示灯就不会闪烁了因为目前没有程序所以不会闪烁。配置寄存器配置3个寄存器1.RCC寄存器RCC-APB2ENR 0x00000010;作用打开GPIOC端口的时钟。RCCReset and Clock Control复位和时钟控制模块的寄存器基地址。APB2ENRAPB2外设时钟使能寄存器IOPCENIO端口C时钟使能(I/O port C clock enable)由软件置’1’或清’0’0IO端口C时钟关闭1IO端口C时钟开启。2.配置PC13口的模式GPIOC-CRH 0x00300000;作用配置GPIOC的某个引脚为推挽输出模式速度为50MHz。GPIOCGPIOC端口的寄存器基地址。CRH端口配置高寄存器Configuration Register High负责配置引脚8~15的模式和速度。0x00300000二进制是0000 0000 0011 0000 0000 0000 0000 0000它的有效位在bit20~bit23。0x00300000对应到bit20~23就是0011在CRH寄存器中每4个bit控制一个引脚bit20~bit23 控制的是GPIOC的引脚13PC134个bit被分成两部分低2位bit20~21配置输出模式00表示输入01表示输出10/50MHz10或11也表示输出但速度不同。高2位bit22~23配置输出类型00表示推挽输出01表示开漏输出10表示复用功能推挽11表示复用功能开漏。低2位是 11 →50MHz输出模式高2位是00→通用推挽输出端口输出数据寄存器//0x00000000为低电平0V //PC13口是低电平点亮全为0就是亮的否则不亮 GPIOC-ODR 0x00002000; //让 GPIOC 的第 13 号引脚PC13输出高电平3.3V在 ODR输出数据寄存器中每一位控制对应引脚的输出电平写1→ 该引脚输出高电平3.3V写0→ 该引脚输出低电平0V库函数GPIOC外设RCC_APB2PeriphClocKCmd(RCC_APB2Periph_GPIOC, ENABLE); //GPIOC的外设配置端口模式配置模式和频率GPIO_InitTypeDef GPIO_InitStructure; //定义结构体 GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz; GPIO_Init(GPIOC, GPIO_InitStructure); //配置模式和频率高低电平GPIO_SetBits(GPIOC, GPIO_Pin_13); //PC13高电平3.3V //GPIO_ResetBits(GPIOC, GPIO_Pin_13); //PC13低电平0V启动文件的分类GPIO简介可配置为8种输入输出模式引脚电平0V~3.3V部分引脚可容忍5V输出模式下可控制端口输出高低电平用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可读取端口的高低电平或电压用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等GPIO基本结构内核通过APB2总线对寄存器进行读写这样就可以完成输出电平和读取电平的功能。寄存器写1对应的引脚输出高电平0就是低电平。驱动器负责增大驱动能力。GPIO模式通过配置GPIO的端口配置寄存器端口可以配置成以下8种模式模式名称性质特征浮空输入数字输入可读取引脚电平若引脚悬空则电平不确定上拉输入数字输入可读取引脚电平内部连接上拉电阻悬空时默认高电平下拉输入数字输入可读取引脚电平内部连接下拉电阻悬空时默认低电平模拟输入模拟输入GPIO无效引脚直接接入内部ADC开漏输出数字输出可输出引脚电平高电平为高阻态低电平接VSS推挽输出数字输出可输出引脚电平高电平接VDD低电平接VSS复用开漏输出数字输出由片上外设控制高电平为高阻态低电平接VSS复用推挽输出数字输出由片上外设控制高电平接VDD低电平接VSSGPIO_Mode_AIN //模拟输入GPIO_Mode_IN_FLOATING //浮空输入GPIO_Mode_IPD //下拉输入GPIO_Mode_IPU //上拉输入GPIO_Mode_Out_OD //开漏输出GPIO_Mode_Out_PP //推挽输出GPIO_Mode_AF_OD //复用开漏输出GPIO_Mode_AF_PP //复用推挽输出点灯是推挽输出GPIO四个输出函数1.GPIO_SetBits(GPIOx, GPIO_Pin可以把指定的端口设置为高电平。2.GPIO_ResetBits(GPIOx, GPIO_Pin)可以把指定的端口设置为低电平。3.GPIO_WriteBit(GPIOx, GPIO_Pin, Bit_RESET/Bit_SET)根据第三个参数来设置指定的端口Bit_RESET是清除端口值置低电平Bit_SET是设置端口值置高电平。4.GPIO_Write(GPIOx, PortVal)可以对16个端口进行写入操作。