(1)Proteus 8.9上的STM32仿真系列(HAL)---流水灯

**

(1)Proteus 8.9上的STM32仿真系列—流水灯

此系列面向新手,不使用自定义的库文件,只过一遍STM32的大部分功能。

**
环境:Proteus8.9+STM32CubeIDE 1.1.0**

Proteus下载:推荐微信软件管家公众号(http://www.softgj.com/)

  1. 注意安装路径要是默认c盘里,要不然按照步骤会激活不了。

  2. 8.9版本STM32元件比8.6多很多,还有STM32 401VE,方便后面仿真大一点的程序,建议使用8.9。
    .
    STM32CubeIDE 1.1.0下载:stm官网应该有,可以直接注册账号进去搜索下载,相关配置教程网上应该都有。
    本系列新手向,本人也是菜鸟,目前卡在ucosii上,本教程会一直更新到ucosii的移植。
    使用Proteus的优点:省经费,在proteus上白嫖还可以蹭开发板的教程,可以省下学习STM32初期的费用,后面直接上f429的和linux开发板,也可以自己买模块和核心板学习。第二个优点是调试快,生成hex文件后proteus直接运行仿真,不用自己去摸两下硬件,仿真调通了再往板子上烧。
    一、proteus配置
    1.文件-》新建工程-》选好名字路径下一步-》一路默认下一步至完成
    2.网格线上:右键-》放置-》元件-》from libralies,左上角keywords搜索stm32,此处我选择STM32 F103C6。
    在这里插入图片描述
    3.同上搜索LED,sub-category(子类别)选择LEDs,可以看到LED-GREEN几种颜色的LED,挑自己喜欢的颜色吧。放置两个到仿真图上。(proteus上仿真不用自己连外围电路,默认就能跑)三角符号vcc在 右键-》放置-》终端-》power,电阻搜索resistors可以找到,选个功率小的普通电阻,双击打开,修改Resistance为510,即为510欧姆,不要问我为什么是510,我抄的。
    在这里插入图片描述

    4.菜单栏-》设计-》配置供电网
    (1)名称vcc/vdd(电路的供电电压/芯片的工作电压),设置电压3.3v。并将下面的vdda(模拟电源)增加到右侧。
    在这里插入图片描述
    (2)同样将VSSA(模拟地)加入GND后点击确认。
    在这里插入图片描述
    二、CUBEMAX IDE
    (1)打开后左上角 file-》new-》STM32 PROJECT,等待片刻出现芯片选择界面(第一次到这个界面好像需要联网等一会儿),选择STM32F103C6TX。可以在这里看看STM32产品的种类。选中后点击右下角Next。自己取个工程名,然后next-》finish。之后弹窗选择yes,进入图形化配置界面。
    在这里插入图片描述
    (2)时钟配置:选中systemcore-》RCC,设置High Speed Clock(HSE)为Crystal/Ceramic Resonator(晶体/陶瓷谐振器)
    在这里插入图片描述
    时钟配置(Clock Configuration)如图,由于我用的笔记本配置问题,直接就8Mhz了。(不会linux,找嵌入式软件的活儿真不好找,没毕业的小伙伴把握好应届生的身份,出来了社招真的难找,要不是在外不方便,上我的台式Ryzen7仿真了)我这种时钟配置一般不会用到,大家想配置高频率直接改HCLK为72或者其他数字,软件会自动帮你配置。注意最左侧晶振输入为8Mhz。
    在这里插入图片描述
    (3)设置PB0/PB1为输出模式,左键选中,菜单选择GPIO_Output
    在这里插入图片描述
    (4)此处可以修改输出引脚的配置,上拉/下拉或者推挽/开漏输出。此处默认,只是提一下不用更改。(分辨率低的显示器这个窗口很难点,是正常的,可以自己用鼠标拉窗口或者点窗口边角的小三角形调整)
    在这里插入图片描述
    (5)点击齿轮生成代码或者左上角Project-》Generate code
    在这里插入图片描述
    (6)main.c位置如图,双击即可打开编辑
    在这里插入图片描述
    (7)在main.c的while(1)处如图添加代码。
    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
    //将PB0引脚置高电平
    HAL_Delay(500);
    //延时500ms
    这两个函数的具体用法百度,也可以参考网上开发板的教程,都是开源免费的。
    此处就是PB0和PB1电平来回切换,对应的LED灯也会闪烁。
    在这里插入图片描述
    (8)生成bin和HEX文件配置(重要),菜单project-》properties-》c/c++ build-》settings-》MCU Post build outputs,勾选binary和hex结尾那两项。 apply and close.
    在这里插入图片描述
    (9)project->build all,编译并生成hex文件
    在这里插入图片描述
    三、开始仿真
    (1)打开proteus,左键双击STM32 F103C6,设置crystal frequence 为8Mhz(注意这个是HCLK的频率,不知道是bug还是我设置哪里有问题,注意别掉了Mhz单位,要不然你等几天才闪一次)。program file选择cubemax ide 工程目录debug文件夹下的hex文件。
    在这里插入图片描述
    (2)proteus菜单栏 调试-》不加断点仿真(亮度很小,双击把led的参数改成2mA就很亮了)
    在这里插入图片描述

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页