arduino和单片机的区别(arduino是单片机吗)

arduino和单片机的区别(arduino是单片机吗)

大家好,我是马建仓。

无论你是一个单片机新手,或者是一位电子 DIY 的爱好者,还是说是对嵌入式开发感兴趣的工程师,今天这个开源项目值得你看下去。

ECBM 是什么?

ECBM,是基于 STC8 单片机的外设函数库,同时它也是“Everything Can Be Module(一切都可以模块化)”的简称。

项目地址: https://gitee.com/jackchio/ecbm_library

开源许可证: MIT

项目作者奈特曾在自己的个人平台上说过,他认为无论软件、硬件都可以模块化,且只需要造一次轮子。2017年起,他根据模块化的设计理念,提出建立一个模块的软+硬产品,如果某日想要判定“今天家里为何很闷”时,可以根据湿度模块+ CO2 模块+主控分析原因。

此后,作者学习了各个单片机大厂的官方库,理解软件的程序结构,选取合适的载体。经过实践,作者发现单片机官方库一般可分为两类:一类是是由 DIY 爱好者编写简单封装成函数,用到什么写什么,风格混乱易冲突,没有一个好的体系;另外一类则是由工程师编写的,虽然有很好的框架,但是由于英文注释、英文文档及复杂的文件结构和代码规则等让新手望而却步

抱着别的产品不符需求,就自己造轮子的想法,ECBM诞生了,经过几年的技术迭代,目前,该项目已经发行到 V3 版本,并收录收录入 Gitee星球的项目推荐栏目,欢迎开发者同步关注。全中文注释,让单片机开发和Arduino一样高效

Gitee星球 是 Gitee 旗下的创新研究所。在这里,我们收集整理了 Gitee 上高品质、有意思的开源项目,同时也挖掘 Gitee 项目作者的一手开源故事,邀请优秀的开发者们讲述自己的开源经历,举办有趣的开源活动。

特点

  • 基于 C 语言,按统一风格编写
  • 具有 KEIL 特性,能够适用图形化编辑工具
  • 代码运行速度提升,大数据
  • 支持多器件复用,任意 IO 都可驱动
  • 全中文注释,符合国人习惯
  • 代码增加可剪裁,能装进型号更小的单片机
  • 当前支持 STC8 全系列单片机

前期准备

使用之前需要确保软件、程序都下载安装完毕,具体链接可前往作者仓库下载:https://gitee.com/jackchio/ecbm_library

操作流程

新建

双击新建工程.bat,新建test工程

arduino和单片机的区别(arduino是单片机吗)

进入 ecbm_test 文件夹,打开 ecbm.uvproj,开始编程

注意: 在界面下输入英文或拼音,因Keil对中文支持度低,不建议在此出现中文字符

设计正确的单片机型号

STC8系列目前有F、A、G、H、C这几个系列,他们的8051寄存器都是一致的,但是扩展8051的功 能寄存器却是有所差别,因此单片机型号一定要设置正确,才能访问正确的寄存器

方法: 在 Keil 左侧的 LIB_LIST 下找到 ecbm_reg.h,双击打开ecbm_reg.h。然后在窗口的左下角点 Configuration Wizard 标签进入图形化配置界面

arduino和单片机的区别(arduino是单片机吗)

为何是STC8单片机?

  • 库要求要有通用性,为了保证通用性就不能为了运行速度而优化。这就要求使用一款运行速度快的51单片机
  • STC8在整型计算略低于stm32f030(同等运行频率下),在浮点计算中略高于stm32f030(也是同等运行频率下)。

设置时钟参数

打开ecbm_core.h,进入图形化配置界面。在【单片机系统时钟】下的【单片机系统时钟设置】选择所需选项。

譬如: 作者使用的是 STC8A8K64D4 ,在 STC-ISP 中设置了 40MHz 的频率,由于超过了 30MHz 且我的应用是刷屏 一定需要高频率工作。所以我选择“内部高速时钟 HSI(自定义)”,先节省几百字节空间,然后填写频率 40000000。

如图所示:

arduino和单片机的区别(arduino是单片机吗)

文件结构

arduino和单片机的区别(arduino是单片机吗)

往期推荐

最近,CNCF云原生全景图收录了一个国产轻量级RPC框架

13岁初中生开源自创编辑器,网友:有被卷到,我真的会谢

都2022了,还要不要重复造轮子?

查看历史推荐的优质开源项目,欢迎开发者前往全中文注释,让单片机开发和Arduino一样高效 查看,同步关注 Gitee星球,一同学习高质量、好玩有趣的开源项目,探究技术大牛们都是怎么炼就的。

创业项目群,学习操作 18个小项目,添加 微信:sum5080  备注:小项目

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3300536702@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.yxfxq.cn/2038.html