数码之家

 找回密码
 立即注册
搜索
查看: 1382|回复: 17

新手的IAR C++ (V10.20) FOR 8051 对STC8H8K64U单片机的最简单C++例程

[复制链接]
发表于 2022-9-10 11:03:53 | 显示全部楼层 |阅读模式
//新手的IAR C++ (V10.20) FOR 8051 对STC8H8K64U单片机的最简单C++例程,欢迎指正 autopccopy (itkw_com) 2022.09.09

//C语言是面向过程的,而C++是面向对象的。C++:是C语言的继承。理论上C语言都可在C++中运行。但C++有三大特性:封装、继承和多态(嵌入式C++有简化)
//目前支持8051的好像仅有IAR C_C++ FOR 8051软件(KEIL C51 及SDCC等是不支持C++的, MDK是支持ARM的C++),IAR的官方手册下载:https://wwwfiles.iar.com/8051/webic/doc/EW8051_CompilerGuide.pdf
//另可参考文档《IAR 8051 C/C++ 概述 - 以及使用C++ 相比C 的提升》:https://blog.csdn.net/Etberzin/article/details/121287492
//STC的 IAR 8051 例程(暂好像未C++特性的):http://www.stcmcudata.com/OpenSource/STC8H-IAR.ZIP
//网上8051 C++的例程非常少,本例只是一个最简单的例子,抛砖引玉。 以IAR 8051 V10.20 试用版 在STC 打狗棍最小系统板 验证成功。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
 楼主| 发表于 2022-9-10 11:17:37 | 显示全部楼层
本帖最后由 autopccopy 于 2022-9-10 11:54 编辑

好像8051 流行的C++编译器只有IAR FOR 8051. (KEIL C51不支持, SDCC不支持,KEIL MDK 仅支持ARM).
STC32G 的 C251好像也暂未有C++编译器。
另附STC公司的STC8H 的 IAR例程包,欢迎学习体验。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2022-9-10 12:48:51 来自手机浏览器 | 显示全部楼层
不过说真的IAR编译速度真特么快,我玩stm8的时候很巴适
回复 支持 反对

使用道具 举报

发表于 2022-9-10 14:13:18 | 显示全部楼层
KEIL MDK 的程序直接移到 IAR中可以用么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-10 15:41:19 | 显示全部楼层
触景情伤 发表于 2022-9-10 12:48
不过说真的IAR编译速度真特么快,我玩stm8的时候很巴适

刚开始玩IAR, 请问IAR FOR STN8可以C++编程吗?
回复 支持 反对

使用道具 举报

发表于 2022-9-10 16:39:39 来自手机浏览器 | 显示全部楼层
autopccopy 发表于 2022-9-10 15:41
刚开始玩IAR, 请问IAR FOR STN8可以C++编程吗?

几乎没有用到过c++
回复 支持 反对

使用道具 举报

发表于 2022-9-10 17:58:43 | 显示全部楼层
单片机主流还是C用C++的少
回复 支持 反对

使用道具 举报

发表于 2022-9-11 09:49:26 | 显示全部楼层
谢谢楼主分享  单片机主流还是C  C++应用确实少  但是其确实是单片机发展方向
回复 支持 反对

使用道具 举报

发表于 2022-9-13 20:34:33 | 显示全部楼层
这样写真的好吗?第2个LED初始化会不会把第1个LED初始化的寄存器值覆盖了?
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-9-13 21:13:26 | 显示全部楼层
本帖最后由 autopccopy 于 2022-9-13 21:15 编辑
595953427@qq 发表于 2022-9-13 20:34
这样写真的好吗?第2个LED初始化会不会把第1个LED初始化的寄存器值覆盖了? ...

谢谢提醒,例程赶时间不严谨。初始化应该像 ON, OFF 行为一样,使用 | 及 & 来改值,才不会被误修改。

170
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-13 21:24:19 | 显示全部楼层
本帖最后由 autopccopy 于 2022-9-13 21:25 编辑

另外有网友提到的一些问题。其实8051的资源有限,使用C++的提升见首页的《IAR 8051 C/C++ 概述 - 以及使用C++ 相比C 的提升》的参考文章。
其实51要提升性能可以选用增强C251内核的STC32G系列,C语言的语法非常相近,更换头文件后不用修改或做很小修改就可以编译成功,大量运算的应用性能提升非常明显。可惜目前C251暂未有支持C++的编译器。

现在使用主流的IAR 支持8051的C++, 可以是一种摸索,可以IAR的软件也未见C++得例程。使用手册也未能熟练掌握,希望大家一起使用评估C++ 对8051编程带来的提升有哪些?

另,刚刚找到一个第3方的STC89C系列的头文件,STC89C52单片机 用C++也点亮了LED, 相当于一个HELLOWORD!
让我们继续探索学习吧,让C++在有限的资源里带给我们更多的方便与提升。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2022-9-13 21:53:08 | 显示全部楼层
习惯用C了,突然看C++的写法有点费解,甚至觉得没C方便,平时唯一能接触到C++的地方也就只有Arduino的各种库了,但是平时写也还是C。
回复 支持 反对

使用道具 举报

发表于 2022-9-14 09:53:56 | 显示全部楼层
C++ 感觉还是不习惯
回复 支持 反对

使用道具 举报

发表于 2022-9-16 12:23:41 | 显示全部楼层
楼主有没有对比过相同代码在IAR和Keil的编译效率
回复 支持 反对

使用道具 举报

发表于 2022-9-16 12:24:08 | 显示全部楼层
我发现IAR的编译效率非常低,特别是使用了串口打印printf的时候
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-21 12:53:25 | 显示全部楼层
595953427@qq 发表于 2022-9-16 12:23
楼主有没有对比过相同代码在IAR和Keil的编译效率

  我未深入使用IAR , 但 国内51 应该是使用KEIL C51为主流,性能相对满意。 IAR的好处是 支持多种架构的MCU. 据悉性能也不错。网上有人测评过于KEIL C51对比,好像差别不大,不同场景的程序各有输赢。

另好像有空CC系列的无线51芯片,习惯用IAR开发。。。。
回复 支持 反对

使用道具 举报

发表于 2022-9-21 23:38:49 | 显示全部楼层
iar for stm8比stvd好用,iar for arm一般般,没有keil好用,也没有keil的编译效率高,iar for 8051真是巨难用。
keil-arm 5.2x版本的时候不支持多线程编译,在大工程编译的时候速度比较慢,同时期的iar for arm支持多线程,编译速度要快很多,现在5.3x版本的keil-arm也支持多线程编译了,速度跟iar for arm相差无几了。stvd是不支持多线程编译的,在大工程的时候编译速度奇慢。
回复 支持 反对

使用道具 举报

发表于 2022-12-21 21:42:10 | 显示全部楼层
我怎么感觉用c和c++没有什么差别,一样顺手啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-10 02:21 , Processed in 0.390001 second(s), 8 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表