Keil5 STM32 C++开发 ARM V6编译器的使用教程

  Keil5更新之后,开始支持ARM V6编译器,新版本的编译器对C++有了更多的支持,在编译方面也做了很多的改善,具体的没有详细了解,本文只是对STM32 开发下,使用V6版本的编译器进行STM32的C++开发作一个记录,方便和大家交流和参考。至于说为什么STM32要C++开发,这个没有解释,只是个人觉得C++比C有更多的方便,使得编程更加的容易,C++有更多的生态....

  开始上教程:Keil5的安装和破解以及STM32 pack库的安装不在本文范围之内,需要的话请自己百度,网上以及有了很多的教程。

  笔者打开以前的STM32 工程,想自己通过更改编译器版本实现,结果发现编译之后会出现很多的错误,故还是采取Keil5的建立工程方式来建立新的STM32工程。

  

                          项目概览

  第一步:建立Keil5工程-》配置STM32类型。

  第二步:STM32工程文件的配置,CMSIS需要勾选CORE,然后在Device下选中STM32 的启动Startup,最后就是选择需要外设。(勾选过程全部是绿色为有效,如果出现黄色,可能是有相关的依赖性没有选中)

  第三步:切换到V6编译器,同时对C/C++进行配置

注意:正常情况下按照上述步骤,不需要进行额外编译预处理的宏定义,比如定义STM32的芯片密度类型和外设宏等

  第四步:程序的编写:建立main入口,可以行建立main.cpp,或者main.c,注意要检查文件的类型是不是C++文件类型。然后就可以按照C++方式进行STM32开发,把各种操作包装到C++类里面,进行更方便的开发。

  第五步:注意事项:如果在编译的过程中,编译器提示不能识别 class之类关键字,则需要检查相关的类的头文件的类型是不是C++类型,具体如下:

最后,简单对C++的Vector 和lambda进行了测试,给出简单的代码串口打印输出:

std::string str="Command ends with ‘$‘\n";
                         str+="Baude ratio is :115200\n";
                         str+="Firmware version:1.0\n";
                         str+="======================\n";
    UsartHelper.UsartInit();
    UsartHelper.SerialEvent.AttachHandler(this,&System::SerialHandler);
    UsartHelper.log(str,false);

    TickerHelper.TickerInit();
    TickerHelper.SetIntervalms(1500);
    TickerHelper.Elapsed.AttachHandler(this,&System::TickerElapsed);

    //TickerHelper.Start();

    std::vector<std::string> vec;
    vec.push_back("zhangliang");
    vec.push_back("lijie");

    auto tmpx = vec.at(0);
    UsartHelper.log(tmpx);
    UsartHelper.log(vec.at(1));

    auto pfun=[](){UsartHelper.log("this is lambda expression");};
    pfun();

测试结果串口打印出来如下,可以看到都可以很好执行了。

在最后,祝大家使用C++开发STM32 愉快,有任何的问题可以和我交流,或者大家相互请教,有错误或者其他请告知,谢谢!

原文地址:https://www.cnblogs.com/yeshuimaowei/p/11396883.html

时间: 2024-11-06 09:33:53

Keil5 STM32 C++开发 ARM V6编译器的使用教程的相关文章

Eclipse + CDT + YAGARTO + J-Link,STM32开源开发环境搭建与调试

Eclipse+CDT+YAGARTO+J-Li:开源开发环境搭建与调试:作者:Chongqing:邮箱:[email protected]:文档版本:V1.0:发布日期:2014-08-04:前言:此文档本着开源精神,基于LGPL协议发布:因网上开源的单片机.微控制器开发平台信息很少,故:因用ARM公司的KeiluVision开发环境开:因Eclipse是一个 Eclipse + CDT + YAGARTO + J-Link,STM32 开源开发环境搭建与调试 作者 :Chongqing 邮箱

[转载]arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

arm交叉编译器gnueabi.none-eabi.arm-eabi.gnueabihf.gnueabi区别 (http://www.veryarm.com/296.html) 命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os - 目标操作系统 eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface) 根

linux下ARM交叉编译器的安装

1.下载arm-linux-gcc编译器. 2.将下载好的编译器压缩文件拷贝到linux中,注意不要在windows中解压,因为RAR解压工具解压gzip压缩工具压缩的文件可能会出问题. 尽量将编译器的压缩文件放置到根目录下(其实也不一定是要根目录,但是我自己使用过程中发现有一个厂家提供的编译器没有安装在指定的位置,编译器提示库找不到),这样做的目的是为了尽量减少麻烦.拷贝好之后,在终端使用: # tar xvzf arm-linux-gcc-4.4.3.tar.gz 解压编译器. 3.解压好了

Linux ARM交叉编译器设定

在Host PC (x86)下编译ARM的应用时需要使用ARM交叉编译器, 虽然可以从头编译相关工具,但是实在是太麻烦了,而且一般都没有这必要. 目前可以使用的已编译好的二进制文件主要是由Mentor Graphics提供. 主要步骤如下: 1. 下载相关的软件包 $ wget https://sourcery.mentor.com/GNUToolchain/package12813/public/arm-none-linux-gnueabi/arm-2014.05-29-arm-none-li

arm的编译器里已经有C标准库的lib包了,android为啥还要自己再实现呢

arm的编译器里已经有C标准库的lib包了,android为啥还要自己再实现呢 google自己搞的bionic libc来替代glibc想来是有原因的,本来glibc也是lgpl,应该也没有版权问题,但是系统调用的接口有限,google应该是用自己的bionic libc来暴露出更多的系统调用接口,系统调用不属于GPL,这样才有可能让上层有更大的权限去操作底层驱动,这样硬件厂商就可以将有关商业利益的代码放到HAL层(hardware abstraction layer),底层驱动层只要提供操作

.NET开发邮件发送功能的全面教程(含邮件组件源码)

ref: http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html 今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         邮件发送相关.NET类库 3)         介绍我开发的一个发送邮件的小组件(MailHelper) 4)         MailHelper组

h5棋牌游戏公众号开发 app开发+源码平台搭建分享教程

h5棋牌游戏公众号开发 app开发+源码平台搭建分享教程下载diguaym.com/h5 扣扣2152876294 多合一集合游戏 聚集了h5牛牛.金花.二杠八.十三水.三公等 全新界面UI设计(WeChat H5 public number landlords chess source development, Download diguaym.com/h5 buckle more than 2747044651 in one set of game 要建立一个安全Linux服务器就首先要了解

stm32之开发入门

一.开发环境配置 在开发stm32应用之前,我们需要先配置好开发环境. 首先从keil官网下载keil MDK-ARM软件包(v5版本与v4版本不同,v5版本需要下载额外的stm32芯片包)和芯片包(芯片包按照你需要的版本下载即可). keil MDK-ARM软件包下载地址:https://www.keil.com/demo/eval/arm.htm#/DOWNLOAD 芯片包下载地址:http://www.keil.com/dd2/pack/ 接下来安装即可,破解注册机网上都有.(这里不多说)

安装ARM交叉编译器

1.开发平台 虚拟机:VMware 12 操作系统:Ubuntu 14.04 64bit 2.准备ARM交叉编译工具包 编译uboot和linux kernel都需要ARM交叉工具链支持,这里使用Linaro提供的交叉编译工具.下载地址为:http://releases.linaro.org/ 注意:如果主机是64bit,请选择64位的交叉编译器工具链,32bit的主机选择32位的交叉工具链. The Linaro Toolchain Working Group is pleased to an