第一节硬件解读
任何一个实验都是从点亮一个LED开始的,本次将教大家如何用stm32cubeMX+MDK在蓝桥杯嵌入式主板上面点亮一个LED。
先看蓝桥杯嵌入式主板的原理图:从图中可以看出一共有8个LED灯,分别是LD1到LD8。以LD1为例,该LED灯的左侧(正极)连接了一个R7(300欧姆的电阻)和VDD(电源),其中R7的电阻是起限流作用;右侧通过一个74HC753连接到PC8,也就是连接到MCU了。现在重点是搞懂74HC573是什么。
关于74HC573,我们可以在资源包的芯片手册里面找到该芯片的数据手册,在数据手册中可以找到以下关键信息:
从上图可以看出,74HC573是一种锁存器,在`O`E为L(低电平),LE为H(高电平)时,输出随输入变化而变化,如果输入低电平,输出也是低电平;如果输入高电平,输出也是高电平;在OE#不为L或者LE不为H时,无论输入什么,输出都保持原来的状态,造成一种锁死的状态,这就是锁存器。
74HC573在电路图中如下所示:
OE#已经接了地(已经使能),只需要控制LE即可控制74HC573的这个芯片是否锁存。而LE接到了PD2,换句话说,只要操作了PD2,就可以操作74HC573了。
第二节配置环境
1,打开stm32cubeMX,选择“File-New Project ...”。
2,如图,在方框中搜索“stm32g431rb”(可大写,可小写)。然后选择LQFPN64的封装的芯片。
3,选中“A-Z”,查看蓝桥杯嵌入式芯片stm32g431rb的所有功能。
4,选中“SYS”,在Debug项目中选择“Serial Wire”,可以看见PA13与PA14引脚变成绿色,分别用作SYS_SWDIO和SYS_SWCLK。
5,选中“PD2-GPIO_Output”,“PC8-GPIO_Output”,“PC9-GPIO_Output”,“PC10-GPIO_Output”,“PC11-GPIO_Output”,“PC12-GPIO_Output”,“PC13-GPIO_Output”,“PC14-GPIO_Output”和“PC15-GPIO_Output”,这样就可以让芯片的PD2和PC8~PC15作为输出引脚了。
6,选中“Project Manager-Project”。在Project Name中填写项目的名字(尽可能不要用中文),在Project Location中选择项目保存的路径,在Toolchain/IDE中选择编译器,蓝桥杯嵌入式比赛用的是MDK5,所以我们选择MDK-ARM V5。
7,点击GENERATE CODE生成代码。
8,点击”CLOSE”,关闭stm32cubeMX,代码生成成功。
第三节编写代码
1,在stm32cubeMX生成代码之后,找到代码保存的路径,并用MDK5打开。
2,找到main.c文件,如下图,对代码进行编译,显示0错误,0警告,表示stm32cubeMX生成代码很成功。
3,在如下图中添加以下语句,注意,要在BEGIN与END之间。
4,点击”“Rebuild”,开始编译程序。
5,编译结果如下:
6,点击”Options for Target...“。
7,点击”Debuy“,然后选择下载器”CMSIS-DAP Debugger“,并点击”OK“。
8,选择“Settings”。
9,选择”Flash Downlosd”,勾选”Reset and Run”并点击”OK”。
10,点击”Download“,开始下载程序。
11,程序下载成功。
第四节注意事项与实验现象
实验注意事项:
1,程序语句需要位于程序的BEGIN与END之间。
2,利用USB线将电脑USB口与开发板CN2口连接。
3,J6,J7,J8需要用跳线帽连接,否则无法下载程序。
实验现象:
LD1,LD9和LD11常亮。