STM32L476R快速入门——前期准备(项目设计专题)

STM32L476R快速入门——前期准备

本人就读于西北某211电子类高校,第一次接触STM32L476R是因为学院开设了“微控制器项目设计”这门课。本文将从以下几个方面去介绍在整个项目设计阶段需要用到的STM32的知识,并且我将在GitHub上公开我的全部代码,带大家手把手的熟悉STM32L476R,并完成一个“井字棋”的带物理交互的机器人的设计。下面是我的GitHub仓库连接(如果感兴趣还请Star,Watch,Fork三连)

一、编译语言

之前只使用过Arduino,对STM32几乎完全不熟悉。初接触L476R的第一感受是完全懵逼。因为之前大一开设过“微机原理”这门课,里面所用的示例“微机”便是STM32,所以我当时的第一反应是这个L476R该用汇编还是C语言去写。

汇编语言有一个好处,就是当时姜光老师讲的很清楚,中断、串口、定时器设计都可以直接复用大一的工程。而我之前从来没用过STM32,所以能够代码复用,这也是一大好处。不过汇编语言确实还是太顶了(主要是可读性差,而且不方便使用大佬的代码)。

L476R有一个很神奇的特点,就是他可以直接使用Arduino的库以及编译方式进行烧录,而且还给出了官方对应的接口文档。但是呢其对应的接口数量有限,只有靠内侧的两排母口。
在这里插入图片描述
如果使用STM32的编译方式则可以调用全部的接口。由于我最后的设计成品需要较多的接口,所以我没有选择Arduino的开发方式,下文中也将以STM32的官方开发方式为主。

二、编译器

这个我是使用的在线编译器Mbed OS的开发方式。主要原因是懒:不想装Keil了。Mbed的网址如下:Mbed OS

这里呢首先你需要注册一个账号,然后点击右上方的Complier就可以进入编译界面了。

三、连接方式

可以直接使用mini USB 接口供电并且烧录,本人十分不推荐串口(TX0,RX0)烧录和供电,因为这个板子有点问题,这样很容易烧坏。

四、接口定义

本文的第一张图中的接口定义可以说是看晕萌新的一张图,主要是因为使用了串口的重定义。首先如果你使用的是arduino编译方式,那么你的接口定义便是A0-A5,D0-D15。STM32自带的那个蓝色按钮按钮按钮的定义便是USER_BUTTON。那么很多人可能会好奇为什么A0-A5标号的接口上都有写Analog In。这是这些接口,是可以接受模拟输入的。

L476R所有的接口都是支持DIgital In/Out的,即低电平输出(入) “0V”,高电平输出(入)“3.3V” 。但是只有部分接口支持Analog In,所以A0-A5的接口是支持模拟输入的。这个的好处就是当你不太明白学校发的距离传感器怎么用的时候,你可以买一个模拟输出GP2Y0A21YK0F作为距离传感器使用。A2的接口又定义了Analog Out也就是说,他不仅可以支持0V和3.3V的二值输出,还支持[0,3.3]V的模拟区间输出。

A0和A1还标注了Serial 4 TX(RX),这意味者,这两个接口还可以当作串口的输入与输出使用。那么这个“4”就是表明了,他是第四个串口,使能的时候应该使能4号串口,才能使用该接口。

D14 D15还标注了I²C SCL(SDA)这意味着这两个接口可以使用I²C通信方式。学校发的有点难用的TCS34725颜色识别传感器模块和VL6180X光学测距传感器模块都是需要使用 I²C通信读取数据的。

其他的标注都是一些附加功能,本人没有用过,所以就不介绍了。大家也可以看到内侧的CN6标注的一排插口,没有任何接口需要的定义,而是写的GND,+5V等。这表示这些接口固定输出+5V电压,或0V(GND)电压。

如果你使用的STM32的编译方式,不推荐使用绿色的接口标号定义接口,而是使用蓝色的标号定义接口。也就说用PA_0来代替A0等接口。

五、使用注意

这个L476R十分容易烧坏,所以建议财力富裕的小组多买几个备用

我当时烧了Flash,而且是验收前一周烧录Flash,所以十分的难受。有的小组则直接冒烟了,彻底GG。至少我听说的小组至少有7组少了L476R,有一个小组甚至烧了两个(太惨了)。

最好不要用排针接口上的串口进行通信和烧录程序,因为容易烧坏板子。使用的时候所有的器件包括:STM32L476R,FPGA,上位机,所有的传感器,所有的电机一定要共地!一定要共地!一定要共地!因为数字输出的是相对自身GND的高低电平,如果不共地的话,就可能出现某个输出的低电平比另一个的高电平还要高,造成数据读取错误。共地方法:把所有器件的GND接在一起。

猜你喜欢

转载自blog.csdn.net/yikuanglancheng/article/details/105403725