zoukankan      html  css  js  c++  java
  • 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 '$'
    ";
                             str+="Baude ratio is :115200
    ";
                             str+="Firmware version:1.0
    ";
                             str+="======================
    ";
        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 愉快,有任何的问题可以和我交流,或者大家相互请教,有错误或者其他请告知,谢谢!

  • 相关阅读:
    【C++类与对象】实验四(二)
    【微信小程序——开发步骤1】
    【C++/实验三】类和对象
    【C++/类与对象总结】
    【C++/函数】实验2
    食堂APP-项目开发 语音输入(1)
    食堂APP-项目开发及踩坑记录(7)
    食堂APP-项目开发及踩坑记录(6)
    食堂APP-项目开发及踩坑记录(5)
    食堂APP-项目开发及踩坑记录(4)
  • 原文地址:https://www.cnblogs.com/yeshuimaowei/p/11396883.html
Copyright © 2011-2022 走看看