proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)

动态图如图:

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(1)

1.准备
  1. STM32CubeMX和proteus软件
  2. MDK5

1.为生成代码和电路仿真2.为编写代码

2.电路搭建

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(2)

这个电路很简单,仿真我就没加电阻限流

3.生成代码1.设置IO口

点击右边GPIO,如图PB9,PB10 设置为OUTPUT PUSH模式

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(3)

2.启动时钟

点击RCC ,设置HSE为如图所示

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(4)

3.时钟配置

如图所示,我时钟是乱设的,我还不怎么熟悉,因为时钟问题,后面仿真会出现Simulation is not running in real time due to excessive CPU load.这个问题,呜呜呜

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(5)

点击生成代码

4.修改代码

在main.c中添加如图代码

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(6)

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.仿真结果

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(7)

效果:间隔为一秒的流水灯,仿真时间跟实际时间有偏差问题:

  1. 是我代码时钟配置问题,不过我没空改,等我有空再改改2.仿真出现的问题是Simulation is not running in real time due to excessive CPU load.

proteus仿真stm32教程(用Cube和proteus仿真STM32跑马灯)(8)

冬默是小小菜鸟,请多多包涵

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页