
步骤一声明GPIO的结构: GPIO_InitTypeDef GPIO_InitStructure; 步骤二为变量GPIO_InitStructure的成员赋值,如果只设置其中的一部分成员,我们需要如下代码: /** * LED1->PC6,LED2->PC7,LED3->PC9 */ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_Init(GPIOC,&GPIO_InitStructure); 实际上这里省略掉一个函数: GPIO_StructInit,它是用来初始化变量 GPIO_InitStructure的,经过实验,发现不用也可以。大家可以尝试一下:)然后 修改该变量中的成员,有三个成员。在STM32开发板上,GPIO端口接的 PC6、 PC7、 PC9引脚。因此,我们在GPIO_Pin成员这里赋值GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_9。 在GPIO_Speed成员上赋值 GPIO_Speed_50MHz, GPIO_Mode成员则是设置为 GPIO_Mode_Out_PP,表示推挽输出模式。 推挽输出——>(输出高电平电流和输出低电平电流一样大) 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。 推挽电路适用于低电压大电流的场合,广泛应用于功放电路和开关电源中。 优点是:结构简单,开关变压器磁芯利用率高,推挽电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小。 缺点是:变压器带有中心抽头,而且开关管的承受电压较高;由于变压器原边漏感的存在,功率开关管关断的瞬间,漏源极会产生较大的电压尖峰,另外输入电流的纹波较大,因而输入滤波器的体积较大。 三极管的推挽部分的简化电路图如图 ![]() 步骤三 调用函数GPIO_Init()来初始化外设GPIO,代码如下: GPIO_Init(GPIOC,&GPIO_InitStructure); 步骤四使能。注意,在固件库中,GPIO没有GPIO_Cmd的函数,因此这个步骤省略。 通过以上四个步骤,我们已经对GPIO进行了设置。还有一个问题不能忽略: 在设置外设前,我们必须给它调用一个时钟函数来使能外设时钟。 在CPU的用户手册中,我们知道,stm32有好几个时钟的,现在我们用哪个 时钟呢?打开《STM32F10xxx参考手册》中文版的P25页,截图如下页所 示。我们使用的是GPIOC端口,因此,使用的是APB2。 ![]() 步骤五:定下这个APB2对应的函数后,我们就调用它: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); 其中,第一个参数需要指示要开启什么端口的时钟,RCC_APB2Periph_GPIOx就是开启GPIOx的时钟,第二个参数需要指示是开启还是关闭,ENABLE/DISABLE。 注意,这个时钟的使能函数,应该放在最前面。必须先有时钟,才能做后续的操作。 我们先看原理图里,LED如何连接的: ![]() ![]() 从原理图,我们可以看到,要使得3个LED都亮起来,必须把对应的引脚 清零。置1会让LED灭。现在打开STM32固件库文档,找到10.2小节,GPIO 库函数。GPIO设置的所有函数,都在这里。我们看下要使用GPIO库的哪个函 数。找到:GPIO_SetBits();和GPIO_ResetBits(); 这两个函数,根据说明,分别是设置某个引脚为高电平和低电平。 GPIO_SetBits函数是设置高电平, GPIO_ResetBits函数则是清零操作。根据我们 获得的信息,写出如下代码:我们的目的是让所有的LED有规律地闪烁,并且无限循环。 我们还需要调用SystemInit();函数,来初始化整个系统,包括时钟设置到 72MHZ。以上配置结束后,您就可以根据MDK+Jlink的相关教程,下载HEX 文件到板子里进行调试了。 |
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
【2025·STM32峰会】GUI解决方案实训分享2-编译运行TouchGFX咖啡机例程(含桌面仿真)
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命
从STM32 MPU产品看嵌入式系统中微处理器的新变化