STM32duino——用ArduinoIDE玩STM32(一): 刷入Bootloader,实现免串口下载

写在前面:为什么我们需要STM32duino?

同样的价格,更高的性能

性能简单对比:

  • STM32F103C8T6 vs Arduino Nano
    主频: 72MHz vs 8MHz
    SRAM: 20K vs 2K
    存储: 64K vs 32KFlash+1KEEPROM(ATmega328)

STM32F103C8T6在各个方面都优于Arduino
Nano,而它们的售价却相差无几。此外,STM32的这款芯片还具有更多的GPIO,更高精度的PWM输出(比Nano高64倍),更强大的外设(高精度ADC,若干硬件USART、I2C、SPI)等优点。

准备工作

硬件准备:图片来自网络

STM32F103C8T6 蓝色开发板(Bluepill) x 1(图片来自网络)

注意:请确认PCB颜色是蓝色的。另有一种黑色PCB版本的,方法略有不同。在这里插入图片描述

USB转TTL小板 x 1(如CH340)

接线:

RX————A9
TX————A10
GND————G
3v3————3.3

将串口模块的RX,TX引脚分别与板子的A9,A10引脚连接。并正确连接3.3V与GND的线路。

注意:如果接入串口模块后计算机无法识别它,请确认是否正确的安装了相关的驱动。

软件准备:
先把下载链接放上

Arduino开发环境:ArduinoIDE
在这里插入图片描述

Stm32duino的Bootloader:STM32duino-bootloader

STM32duino-bootloader包可以不用完整下载,只需要里边一个BootLoader的bin文件即可,在https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries,根据板子上的led灯使用的针脚,来选择一个文件下载即可,这里图中BluePill板选择pc13.
在这里插入图片描述

STM32硬件支持相关文件:“Hardware” files to support STM32 based boards on Arduino version 1.8.x
注意:这个国内下载是很慢的。请‘另想办法’后再下载。否则可能要花超过一个小时的时间。
在这里插入图片描述

flash_loader_demo_v2.8.0:https://www.st.com/en/development-tools/flasher-stm32.html (上面链接如果慢可以用这个http://www.liangchan.net/liangchan/9954.html)下载安装即可

刷入Bootloader

按“硬件准备”连接好线后,把STM32板上boot0插到1的位置,boot1插到0的位置,USB转TTL插入电脑,打开flash_loader_demo。
如果找不到串口,先插入你的下载线,然后重新打开软件:
1:这里选择你的串口号,next在这里插入图片描述

2.原作者说这里按一下开发板上的复位键,但我测试多次,按不按完全相同的结果,直接next
在这里插入图片描述

3:这里根据你的芯片,选择内存大小(Bluepill可以不用选择),然后next
在这里插入图片描述

7:选择Download to device,并选取下载好的bin文件,next
在这里插入图片描述

8:烧写完成。
在这里插入图片描述

可以全部关闭了,所有线可以撤掉了,BOOT0插回0。

安装相关支持

把下载好的“Arduino_STM32-master.zip”解压到桌面,文件夹名字为“Arduino_STM32-master”,剪切“Arduino_STM32-master”到C:\Users\用户名\Documents\Arduino路径下的hardware文件夹下(hardware文件夹文件夹不存在则需要创建)
在这里插入图片描述
打开Arduino_STM32-master\drivers\win 双击安装install_drivers.bat
在这里插入图片描述

打开“Arduino”,点击“工具” -> “开发板:xxxxxxxxx”->“开发板管理器”->(索引下载完成后输入)“SAM”-> (安装下图中圈中的内容)

install the Arduino SAM boards (Cortex-M3) from the list of available boards. You must do this step, it installs the arm-none-eabi-g++ toolchain!

在这里插入图片描述
安装完成后,关闭页面,点击“工具” -> “开发板:xxxxxxxxx”-> (选中)按图中选项选择
在这里插入图片描述

第一个测试程序

用microUSB线连接STM32和电脑,在“工具”中选择正确的端口
例程

/*
  Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

开始你的烧录

烧录完毕,你会看到你的LED开始闪烁。

至此,全部完成

注意事项

在这里插入图片描述
stm32这块板是3.3v电平,与arduino uno常见的5v电平不同,根据引脚图注意IO输入电压。使用UART时与Arduino略有不同。
其他相关: link.

参考文献

感谢各位
[1]https://blog.csdn.net/fengwangzhe000/article/details/104569598
[2]https://blog.csdn.net/wwwwyccom/article/details/89251521
[3]https://blog.csdn.net/xatsoft/article/details/90687016
[4]https://blog.csdn.net/kangear/article/details/77589691
[5]https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki

  • 15
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
是的,你可以使用Arduino IDE来编程STM32微控制器。虽然Arduino IDE最初是为Arduino开发板设计的,但它也可以通过添加适当的核心(core)支持扩展到其他微控制器平台,包括STM32系列。 以下是在Arduino IDE中使用STM32的一般步骤: 1. 安装Arduino IDE:首先,确保你已经安装了最新版本的Arduino IDE。你可以从Arduino官方网站(https://www.arduino.cc/en/software)下载并安装。 2. 安装STM32核心:打开Arduino IDE,然后依次点击“文件”->“首选项”。在“首选项”窗口中,找到“附加开发板管理器网址”并点击右侧的图标。在弹出的对话框中,输入以下URL并点击“确定”: https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json 3. 安装STM32开发板支持:回到Arduino IDE的主界面,点击“工具”->“开发板”->“开发板管理器”。在“开发板管理器”窗口中,使用搜索栏搜索“STM32”,然后找到并安装适合你的STM32系列的开发板支持。 4. 选择STM32开发板:在Arduino IDE的主界面上,点击“工具”->“开发板”,然后选择你所使用的STM32开发板。你可以从列表中选择特定的STM32型号或开发板。 5. 编写和上传代码:现在你可以使用Arduino IDE来编写STM32的程序。在代码编写完成后,选择正确的串口和开发板,并点击“上传”按钮将代码上传到STM32开发板。 需要注意的是,不同的STM32开发板可能需要不同的配置和引脚映射。因此,在编写代码之前,建议参考相关的硬件资料和文档以确保正确配置和使用。 希望以上信息对你有所帮助!如果你有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值