Archlinux下 stm32 烧写工具配置

1. 使用的开发板子

使用的开发板是好几年好几年前买的了,板子一直在家里睡觉。最近闲着没事,所以打算学习一下stm32.
板子是普中STM32-PZ6806L开发板。开发板的图见下

Archlinux下 stm32 烧写工具配置_第1张图片

2. stm32 烧入程序原理

我们这里使用ISP(In-System Programming)烧入.
ISP 烧入使用串口.
这个开发板子提供了上图的6的位置是一个miniUSB5的位置是一个usb转串口的芯片。5,6的原理图见下:

Archlinux下 stm32 烧写工具配置_第2张图片

其中串口的 DTR引脚控制STM32的重置。

RTS引脚控制STM32的boot选择。

我们要想烧入程序:要把开发版上面的34的位置的跳冒

BOOT0连接到3.3V

BOOT1连接到GND。

(PS,我试了试他们都连接到GND也是可以用的。。。)

3. 下载 stm32flash 程序

注意:

  1. 上面可能执行make的时候会出现编译错误。因为archlinux是滚动更新的。不能保证代码每次都编译通过。我这次编译就出现了错误。但是也很好解决,就不多说了。

  2. make install 命令会默认安装stm32flash命令到/usr/local下面。如过不想安装到这个里面请修改Makefile

  3. Makefile中也指定了man pages安装到哪里了。请参考 man page的配置,去配置man手册。(ps:如果不需要手册,这一步不需要考虑了)

4. 测试stm32flash程序能不能正常工作

我们把开发板通过usb插入电脑。并查看man stm32flash的配置,发现可以直接执行stm32flash 查看设备信息。 如下:

Archlinux下 stm32 烧写工具配置_第3张图片

喔吼,执行失败了。查看man stm32flash我们可以看到如下配置:应该是通过rstboot两个口去配置芯片进入和退出bootloader

Archlinux下 stm32 烧写工具配置_第4张图片 

Archlinux下 stm32 烧写工具配置_第5张图片 

 查看文档后,我们这个开发板子上面进入bootloader和离开bootloader的序列应该如下

所以,我们执行我们根据开发板的原理图和这里的手册尝试执行如下命令。发现就成功了。
注意:

  1. 我的芯片是stm32f1, 而stm32w的配置可能有所不同。
  2. 芯片进入和退出bootloader的顺序设置可能跟你的ch34x(并转串)芯片和stm32芯片连接不同而有不同的设置。自己可以测试出自己的序列。

Archlinux下 stm32 烧写工具配置_第6张图片

上面读取的是设备信息,反正我暂时也看不懂,就先不说了。

5. 测试写入程序

 Archlinux下 stm32 烧写工具配置_第7张图片

-w:指定要写入的hex文件,
-v:表示校验写入的数据
-g:表示从哪个地址执行程序

6. 其他

  1. 上面烧写环境是在archlinux进行的。但是配置过程好像跟linux发行版本没有什么太大的关系。唯一可能失败的地方应该就是编译stm32flash的地方。

  2. 另外串口/dev/ttyUSB2这样的串口设备,普通用户可能没有办法使用。需要root权限。

下面给出archlinux 下面非root用户也可以使用的方法。


Archlinux下 stm32 烧写工具配置_第8张图片

3.如果你的archlinux 配置了AUR,那么也可以从AUR仓库下载

 

查看man stm32flash 其使用方法与上面的稍微有点不同。现在的序列为-i rts,,,-dtr,,,dtr:-rts,,,-dtr,,,dtr。 其中每个逗号代表两个信号之间相隔100ms。当然具体的配置,要查看你们电脑里面的man pages。不能一概而论。多尝试尝试。

【学习交流技术群:454923484】

【自己收集到的网盘免费资料包,需要的自行领取,大家放心领取】:

嵌入式物联网 22个STM32项目、大赛作品,【华清远见发放资料包】http://makerschool.mikecrm.com/f4wjYBB教程资料:

(stm32直流电机驱动)

 超声波雷达测距仪

(stm32 USART串口应用)

PWM脉宽调制技术

(定时器)

 stm32 如何用DMA搬运数据

( STM32+LoRa打造LPWA物联网系统)

ZigBee+STM32如何打造智慧教室项目

你可能感兴趣的:(c/c++,stm32,嵌入式开发,stm32,单片机,arm,嵌入式硬件,arm开发)