
1.搭载STM32的开发环境 1.安装jdk 2.安装STM32CubeMX 安装结果如下 ![]() 1.配置STM32CubeMX:安装HAL库 (1)选择自己想要安装的HAL库版本号 (2)下载HAL库,HAL库环境安装完成 安装结果如下 ![]() 3.安装MDK5 2.利用HAL库新建keil5工程 1.STM32CubeMX建项目 1.选择的单片机型号以及点击开始工程项目 2.配置时钟,进入上面的RCC,有两个时钟,一个是HSE和LSE,将HSE那里设为Crystal/Ceramic Resonator 3.进入GPIO选择引脚 并且配置其工作模式: 选择了三个GPIO:PA0,PA1,PA2设置为了GPIO_output;以及一个PB5设置为外部中断源: 4.在GPIO界面里面点击PB5,对PB5的进行中断配置: 5.在CLK Configuration中,进行时钟配置 6.进入Project Manager,进行工程设置点击生成工程与代码: 2.keil工程编写 1.点击刚刚生成的keil5工程文件,双击main.c文件,在main函数上方进行编写一个中断函数HAL_GPIO_EXTI_Callback()以及自定义一个中断的标识符号flag 输入以下代码 uint32_t flag=0; void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if(GPIO_Pin == SWITCH_Pin){ GPIO_PinState pinState = HAL_GPIO_ReadPin(SWITCH_GPIO_Port,SWITCH_Pin); if(pinState==GPIO_PIN_SET) { flag=1; } else if(pinState==GPIO_PIN_RESET) { flag=0; } } } 2.在main函数里的while(1)里面写上如下代码: if(flag1) { HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET); HAL_Delay(1000); } else if(flag0) { HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET); } 3.程序烧录 实验结果如下 ![]() (三)proteus仿真 1.搭建固定项目 1.新建工程 结果如下 ![]() 2.绘制系统电路 1.选择发光二极管,选择红、黄、绿三种颜色的led 2.分别拖入原理框内,并与对应的端口相连接 3.分别给3个LED配置电源 4.将开关拖入原理图内,与设置的外部中断端口相连,并配置电源 结果如下 ![]() 3.仿真运行 选对晶振频率,接入电网,开始仿真 结果如下 ![]() |
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
STM32cubeMX软件的使用过程中的“坑”
【有奖体验】STM32Cube通过Clang/LLVM支持进一步简化代码开发
STM32CubeMX应用结构选择指南
经验分享 | STM32CubeMX 生成时钟获取函数的分析
兔哥的最强U5图显【000】——U5G9最小系统绘制
兔哥的ST67——【000】ST67模组订购
基于LORA的环境感知系统
经验分享 | 使用CubeMx配置NVIC时为何不见子优先级?
经验分享 | 三个 ADC 同步模式配置以及 CubeMx 错误配置的解决方法