STM32代码思路 📅 2026/7/11 22:22:00 新建工程①配置好Start、Library、User文件②将Start、Library、User文件copy到文件夹里③工程文件管理三个箱子→新建3个组→分别将Startmd.s和其他.c.h文件、Library、 User文件添加进去④魔术棒→C/C→include path→添加三个文件路径⑤Define写上USE_STDPERIPH_DRIVER (STD:标准、PERIPH外设、DRIVER驱动)⑥Debug→Use→选择设备类型STLINK或DAP→Setting→Flash Download→勾选Reset and Run配置GPIO时钟①开启GPIOC端口时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);②配置GPIO工作模式GPIO_InitTypeDef GPIO_InitStructure;//创建结构体变量名为GPIO_InitStructure这个结构体用是来存放GPIO配置的参数GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;//推挽输出模式GPIO_InitStructure.GPIO_Pin GPIO_Pin_13;//选择使用引脚为13号引脚GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;//配置输出速度GPIO_Init(GPIOC, GPIO_InitStructure);//将GPIO_InitStructure中填好的配置写入到 GPIOC中GPIO输出LED闪烁①使用RCC开启GPIO的时钟②使用GPIO_Init初始化GPIO③使用输出/输入函数控制GPIO口④while{置位Delay复位Delay}LED流水灯①使用RCC开启GPIO的时钟②使用GPIO_Init初始化GPIO③使用输出/输入函数控制GPIO口④while{使用GPIO_Write设置16位Delay}蜂鸣器①使用RCC开启GPIO的时钟②使用GPIO_Init初始化GPIO③使用输出/输入函数控制GPIO口While{置位复位置位复位}GPIO输入按键控制LED点亮新建文件夹Hardware硬件并添加新建文件夹Key.c/h LED.c/h 路径手动添加到xxx\HardwareKey.c上拉输入模式返回值KeyNumberLED.c推挽输出定义LED1/2_TurnMain.c定义函数KeyNumKeyNumber判断KeyNum的值输出光敏电阻控制蜂鸣器手动添加Buzzer、LightSensor路径到xxx\HardwareBuzzer.c推挽输出Buzzer_ON/OFFBuzzer_Turn读取输出Light_Sensor.c上拉输入LightSensor_Get读取输入MainIf判断状态ECTI外部中断红外传感器计次红外①RCC开启时钟GPIOB、AFIOEXTI和NVIC默认已打开②配置GPIO上拉输入模式不知道怎么选择可以查看GPIO推荐配置表③配置AFIO选择使用的GPIO口连接到EXTI④配置EXTI选择边沿触发方式上下升或双边触发响应方式中断响应/事件响应⑤配置NVIC选择合适的优先级⑥定义CountSensor_Count记录次数CountSensor_Getreturn次数⑥中断函数 EXTI15_10_IRQHandler每次中断次数1旋转编码器计次编码器加减当A处于下降沿的时候检查B是否处于低电平低则-当B处于下降沿的时候检查A是否处于低电平低则