树莓派烧录
- 下载并安装 Win32 Disk Imager;
Win32 磁盘映像工具
- 下载所需的 系统镜像文件,并解压;
-
打开Win32 磁盘映像工具,“映像文件”选择刚刚解压的img文件,“设备”选择你要烧录的SD卡,点击“写入”进行烧录;
镜像系统烧录
-
将SD卡取下,插入树莓派并上电,系统会自动完成安装,安装的过程中,和Desktop版本的Ubuntu过程相似,手动选择一些选项进行配置。
安装好的ubuntu MATE桌面
系统环境配置
Putty远程登录
如果不使用远程登录,可以跳过此步骤。
(1)打开终端,先更新一下系统环境:
sudo apt-get update
sudo apt-get upgrade
(2)安装完成后,启动ssh:
/etc/init.d/ssh start
如果启动ssh失败,输入以下指令,安装openssh-server:
sudo apt-get install openssh-server
(3)输入ifconfig指令,查看树莓派的IP地址并记录;
(4)启动完成后,打开 Putty,输入树莓派的IP地址,点击“Open”远程登录,输入树莓派的用户名和密码
![](https://img.haomeiwen.com/i6460413/7541a4d619bca276.png)
![](https://img.haomeiwen.com/i6460413/9b898d3dc4e87308.png)
通过ST-Link连接树莓派和STM32开发板
-
stlink接4根线,vcc,gnd,swdio,swclk
STM32电路图
-
系统已经安装好了ST-Link驱动,所以无需在进行驱动的编译与安装。如果连接成功,在终端输入dmesg,可以看到如下图所示内容:
Platformio环境配置
(1)安装相关工具
系统已经自带了Pyhton 2.7和pip 8.1.1,现在需要对pip 8.1.1进行升级:
![](https://img.haomeiwen.com/i6460413/01f5f17f817e43eb.png)
pip install --upgrade pip /*升级*/
![](https://img.haomeiwen.com/i6460413/9982e3f7430bcf0c.png)
升级指令执行后,如上图所示升级失败,可以通过下载源码的方式安装pip 10.0.0:
/*下载pip的源码包*/
wget https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz
/*解压*/
tar -zxvf pip-10.0.1.tar.gz
/*安装*/
sudo python setup.py install
![](https://img.haomeiwen.com/i6460413/d5db9605c2122e1e.png)
(2)安装platformio
sudo pip install platformio
platformio --version /*如果安装成功,如下图*/
platfotmio upgrade /*可通过此指令升级*/
![](https://img.haomeiwen.com/i6460413/fc9c0ce3aa3bbf06.png)
(3)初始化platformio环境
mkdir test
platformio init -b genericSTM32F103RB
/*如果初始化成功,如下图*/
![](https://img.haomeiwen.com/i6460413/b2acdac414641cdf.png)
(4)修改platformio.ini文件如下:
[env:genericSTM32F103RB]
platform = ststm32
board = genericSTM32F103RB
framework = arduino
upload_protocol = stlink /*新增*/
(5)编写测试程序
进入到test的src文件中,新建1.ino文件:
sudo vim 1.ino
/*输入测试代码*/
#include<Arduino.h>
void setup(){
pinMode(PA5, OUTPUT);
}
void loop(){
digitalWrite(PA5, HIGH);
}
保存并退出。
(6)运行程序
platformio run --target upload
出现如下错误:
![](https://img.haomeiwen.com/i6460413/94528ef46e6cfabf.png)
重新执行,并通过添加-v指令查看详细的错误原因:
platformio run --target upload -v
发现提示~/.platformio/packages/tool-openocd/scripts/interface/目录下,缺失stlink.cfg文件,但在此目录下发现有stlink-v2.cfg文件,我们测试所使用的便是ST-Link V2,所以通过重命名stlink-v2.cfg为stlink.cfg解决:
mv stlink-v2.cfg stlink.cfg
再执行 platformio run --target upload -v ,发现又报新的错误 “Cannot find /target/swj-dp.tcl文件 ”,并且是在stm32f1x.cfg文件第6行,通过-v提示的详细信息,找到target文件夹,发现是有swj-dp.tcl文件的,那报错找不到该文件,应该是路径有问题。打开stm32f1x.cfg文件,找到第6行,代码如下:
source [find target/swj-dp.tcl]
source [find mem_helper.tcl]
通过分析-v信息中“scripts/target/stm32f1x.cfg”文件的位置,应该是以tool-openocd文件为参照目录的,所以将6、7行代码修改为:
source [find scripts/target/swj-dp.tcl]
source [find scripts/mem_helper.tcl]
保存退出,再执行 platformio run --target upload -v,烧录成功。
![](https://img.haomeiwen.com/i6460413/c0f8d097583e4589.png)
配置与测试过程中,注意权限问题,有些报错可能是因为Permission denies。
网友评论