RYMCU

macOS搭建51单片机开发环境

Hugh 4 年前
# python3 # 单片机开发 # mac # 开发环境 # 51单片机

1.概述

鉴于好多朋友平常工作电脑为苹果,再配一台 Windows 机器来开发 51 单片机,略显多余。为此,本文详细讲解在 macOS 搭建 51 单片机开发环境。

软硬件需求:

  • macOS 笔记本或台式机
  • 串口转 USB 驱动 CH341
  • 51 内核编译器 sdcc
  • 程序下载工具 stcgal
  • 代码编辑器 visual studio code
  • 51 单片机开发板(选配)

小编使用的 51 单片机开发板为 nebula-Pi,主单片机型号为 STC89C52RC,并且搭载了 CH340C 串口转 USB 芯片,通过该串口实现程序的下载。

2.串口转 USB 驱动 CH341 安装

单片机开发板与 PC 之间通过 USB 线连接,需安装 CH340C 的 USB 转串口 macOS 驱动程序。下载地址,直接点下载就好。解压下载好的文件,双击运行目录里面的 ch34xInstall.pkg,根据提示一直点击下一步,最后重启电脑。

重启电脑后,将 51 单片机开发板连接至 PC,在命令行终端输入下列代码:

ls /dev/tty.wchusbser*

如果出现:

/dev/tty.wchusbserial14a0

表示驱动安装成功!其中 14a0 代表你的串口号,每台 PC 或插在不同的 USB 口,这个号略有差异,后续下载程序将会使用到。

3.程序下载工具 stcgal 安装

stcgal 是 STC 单片机的下载工具,安装前需确保已提前安装好 python3。

3.1 安装 python3

macOS 自带 python2.7,到官网下载 python3 的 macOS 版本,并安装。 安装完毕 python3 以后,敲入命令获得安装路径:

which python3

我的安装路径为:

/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7

将这个路径配入环境变量:

vim ~/.bash_profile

在文件的最后一行输入下面代码,保存并重启电脑:

alias python="/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7"

命令行敲入:

python

输出如下信息表明 python3 环境配置成功:

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

3.2 下载安装 stcgal

下载地址,下载后并解压。在终端命令行中 cd 切换路径到解压文件。终端输入下面两条命令开始安装:

./setup.py build
sudo ./setup.py install

可输入如下命令查看 stcgal 版本信息:

stcgal --version

到这里,STC 单片机在 macOS 下的程序下载工具 stcgal 就安装完成了。

4.内核编译器 sdcc 安装

sdcc 可通过命令行直接安装:

brew install sdcc

该命令使用了 brew,因此需提前安装 homebrew,官方网站安装需要科学上网,我们使用国内镜像可实现光速安装,命令如下:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

安装完成后,查看 sdcc 版本信息:

sdcc --version

运行结果如下:

SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ez80_z80/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8/pdk13/pdk14/pdk15 4.0.0 #11528 (Mac OS X x86_64)
published under GNU General Public License (GPL)

到这里 sdcc 安装也告一段落了。

4.代码编辑器 visual studio code 安装

命令行代码安装如下:

brew cask install visual-studio-code

安装完成启动软件,按下图所示搜索,并安装 platformIO IDE 插件:

WeChat0eaa91649c71013ab9d43090d65fa328.png

按下图所示,搜索嵌入式平台 Intel MCS-51 ,并点击进入 install。

WechatIMG39.jpeg

到这里,代码编辑环境准备就绪了。

5.新建工程

step1: 新建项目流程如下所示:

新建项目.jpg
step2: 设置项目名称,选用 Generic STC89C52RC 平台。

选板子.jpg
step3: 编辑代码
step3.1 添加符合 sdcc 编译器要求的头文件,需要打开工程目录将头文件添加至 include 文件夹下,头文件下载链接如下:

https://pan.baidu.com/s/1wSZKHhlElO6w2nwQIMfXuQ 密码: in94

step3.2 src 文件夹下添加.c 格式文件如下图 2,3 所示,并编辑代码如下:

#include"8051.h"
#define LED0 P1_0

void main()
{
	LED0 = 0;//点亮 LED0
}

step3.3 指定下载串口,打开 platformio.ini 文件,添加如下代码,如下图 5 所示:

upload_port = /dev/cu.wchusbserial14a0

注意: 代码中的串口号就是安装 USB 串口驱动时的串口号,正常情况下,在下载时软件会自动寻找并打开串口,但有时打开不正确,造成下载不成功,因此,我们在这里指定好固定的串口。
具体流程如下图所示,其中,6,7 所示为编译下载按钮。

1.jpg
step4 按上图的 6 编译按钮开始编译,结果如下:

success.jpg

step5 按上图 7 下载按钮,并给开发板上电,下载过程如下图所示。

下载成功.jpg

到这里便完成了 51 单片机的开发环境的搭建,并完成了一个小的试验项目。

6 其他重要事项

大家是否注意到我们在新建工程的 step2: 选用 Generic STC89C52RC 平台,如果我们板子的平台不在可选之列怎么办?例如单片机 STC12C5A60S2。此时,我们需要自行建立板子平台模版,具体操作方法请参考: RY-Teach STC12C5A60S2 Mac 环境搭建

7 总结

本文详细介绍了 基于 visual studio + platformIO + stcgal + sdcc 的 51 单片机开发环境搭建。

后发布评论
tianchengx 回复了 ronger

还是菜鸟,终端先用着,后面学到蓝牙wifi了换一个?

ronger 回复了 tianchengx

? 把它换了, Nebula Pi 开发板

昨天又研究了一下,问题可能是出在PlatformIO尝试进行自动断电而不是手动断电导致的,但是自动断电的程序又与我的开发板不兼容?

Hugh 回复了 tianchengx

我的版本也是1.4,应该不是版本问题!

会不会是Platform IO里面的stcgal版本过低?我看platform IO显示的是1.4版本,但是我装的是1.6版本。

我试着按照教程替换了Platform IO里面的 stcgal文件夹,但是VS Code里面显示的还是1.4版本,是我替换失败了吗?

我看了一下,应该是没有,介绍里面也没写有自动下载的功能,用终端烧录也要重新上电才行。

IMG3436.jpg

tianchengx 回复了 Hugh

我的是普中A3的板子,晚上回家我试一下!

Hugh 回复了 tianchengx

你的开发板是不是又类似自动下载的电路?就接Tx,Rx,GND,其他不接试一试!

tianchengx 回复了 Hugh

我是出现power cycling:done 之后,开发板好像直接下电了,在按开关没有反应,^+c结束程序之后自动又上电了,结束之前不论做什么都不行

Hugh 回复了 tianchengx

下面是我的测试结果,点击下载后也停留在了cycling power: done,此时重新给单片机上电,自动开始下载了!

1.jpeg2.jpeg

  • 1
  • 2
  • 3