(1)Proteus 8.9上的STM32仿真系列(HAL)---流水灯
**
(1)Proteus 8.9上的STM32仿真系列—流水灯
**
环境:Proteus8.9+STM32CubeIDE 1.1.0**
Proteus下载:推荐微信软件管家公众号(http://www.softgj.com/)
-
注意安装路径要是默认c盘里,要不然按照步骤会**不了。
-
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就很亮了)
有不想做proteus课设的同学可以加QQ:2947151705
或发邮件到[email protected],帮忙写程序,注释齐全。(●▽●)