完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人就读于西北某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接在一起。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
655浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
525浏览 3评论
540浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
512浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 17:00 , Processed in 0.901656 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号