用Cube和proteus仿真STM32跑马灯
动态图如图:
1.准备
- STM32CubeMX和proteus软件
- MDK5
1.为生成代码和电路仿真 2.为编写代码
2.电路搭建
这个电路很简单,仿真我就没加电阻限流
3.生成代码
1.设置IO口
点击有边GPIO,如图PB9,PB10 设置为OUTPUT PUSH模式
2.启动时钟
点击RCC ,设置HSE为如图所示
3.时钟配置
如图所示,我时钟是乱设的,我还不怎么熟悉,因为时钟问题,后面仿真会出现Simulation is not running in real time due to excessive CPU load.这个问题,呜呜呜 点击生成代码
4.修改代码
在main.c 中添加如图代码
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin() 函数是改变IO电平,SET为高电平,RESET为低电平。 代码很简单
5.仿真结果
效果:间隔为一秒的流水灯,仿真时间跟实际时间有偏差 问题:
- 是我代码时钟配置问题,不过我没空改,等我有空再改改
2.仿真出现的问题是Simulation is not running in real time due to excessive CPU load.
|