在Linux下烧录51单片机

星夢妙者
发布: 2025-07-11 08:18:32
原创
390人浏览过

背景

我一直在学习linux 系统,但是最近还要学习51单片机,所以在linux下给51单片机烧录程序那是非常必要的。

之前在windows上使用keil十分方便,但是转移到Linux上去没有专门给单片机烧写程序的IDE了。无奈只能自己一步一步地配置咯!

看了网上一些博客发现他们写的很模糊,像我这种Linux小白真的是一头雾水,在自己捣鼓了两天之后,把自己的心得发出来,像我那些即将或者正在为此事烦恼的人能够稍微轻松一点!

正文

首先得使用USB转TTL模块给51单片机接线。

接完线之后,我们得在Linux下配置我们的开发编译环境。

首先我们得配置SDCC编译器 ,像我使用了Ubuntu,我直接使用包管理器安装。当然了你也可以去下载文件自己下来编译!

这里我贴上sdcc的网站链接文字

代码语言:javascript代码运行次数:0运行复制
<code class="javascript"> sudo apt install sdcc</code>
登录后复制
在Linux下烧录51单片机

当然了我们有了编译器还不行。我们还需要可以给51单片机烧录程序的软件啊。哈哈。它就是stcflash,大家可以直接使用git命令去克隆到本地

在Linux下烧录51单片机

解压之后会有一个名为stcflash 的可执行脚本。

在Linux下烧录51单片机

我把她重新命名了一下,为了方便我直接把他重新命名为1。

在Linux下烧录51单片机

之后为1添加可执行权限。

在Linux下烧录51单片机
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">chmod +x 1</code>
登录后复制

这样的话,就算没有后缀名的花也可以运行,因为在脚本第一行就已经申明了运行。同样的我贴上stcflash的github的地址。

之后我们得把它添加到环境变量里面去。

在Linux下烧录51单片机
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">mv 1/usr/local/bin/</code>
登录后复制

这时候我们得安装一个依赖,因为51单片机是使用串口下载程序的,安装一个python serial。

Giiso写作机器人
Giiso写作机器人

Giiso写作机器人,让写作更简单

Giiso写作机器人 56
查看详情 Giiso写作机器人
在Linux下烧录51单片机
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">apt install python serial</code>
登录后复制

这时候我们可以执行1(stcflash.py)这个脚本了,这时候切换到工作目录中,写一个51单片机的程序。在Linux下写的和Windows下写程序会有一些不同的地方。

比如说在Windows下引用reg51.h这个头文件就好了而在linux下我们得引用msc51/8051.h这个头文件。

在Linux下烧录51单片机

当然了我们在Windows下写定义端口的的时候是使用^符号,而在Linux下要使用_符号来表示。

我在这里只是简单介绍一下如何在Linux下烧录单片机,不是来告诉你在Linux和Windows下编写程序的时候有哪些不同的,这些要注意的是我们自己要去摸索的。

编写之后我们就可以使用SDCC 编译我们的.c代码了。

在Linux下烧录51单片机
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">sdcc main.c</code>
登录后复制

但是sdcc编译出来的是.ihx文件。但是烧录51单片机是要使用.hex文件。不要怕,其实我们在安装sdcc的时候我们就已经安装了一个packihx软件 。这个软件的功能就是将.ihx文件转化成.hex文件的。

在Linux下烧录51单片机
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">packihx  mian.ihx>main.hex</code>
登录后复制

使用命令packihx之后,现在我们就有了可以烧写的了.hex文件了。

我们之前就已经把1(stcflash.py) 放到了我们的环境变量了,对就是那个我重名命为1的软件。我们在使用1这个软件的时候我们要使用root权限。当然了stcflash会自动识别我们插入的端口,但是你电脑上有多个串口的话,你可能要指定一下串口号。我这里只有这一个串口号,所以他就会自动识别,目前来看她自动识别还是听准确的。目前没啥问题!

在Linux下烧录51单片机
代码语言:javascript代码运行次数:0运行复制
<code class="javascript">stcflsh main.hex --port /dev/ttyusb0</code>
登录后复制

我的串口号是USB0。

51 单片机是要断电重启才能烧录的,所以我们断电重启一下。

在Linux下烧录51单片机

OK

完美。万事开头难,解决了第一步,大家都可以开始奔放了。

以上就是在Linux下烧录51单片机的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号