在IAR中使用C++写单片机程序

一直就很想学学C++,想等等以后调智能车的时候写写上位机玩玩。只是很可惜了一直没时间学,C++没学多少倒是在写单片机的时候C语言精通了…

今天没事看了看C++ primer 顺便搞搞C++的单片机编程,只知道可以用C/C++编但是一直还没用过。

该程序使用IAR 8.2   STM32RBT6单片机

  1. 新建工程

新建工程也没什么差别。在IAR中使用C++写单片机程序_第1张图片

我直接选的ARM 的C++ 不是Empty project (其实差别不大,如果IAR熟练的话)

在IAR中使用C++写单片机程序_第2张图片

然后工程里面只有一个main.cpp 这就不是.c了噢。这说明了这是一个C++工程了。

  1. 准备单片机的文件

单片机需要启动文件的啊

我还会拷一个芯片的点h寄存器地址的文件进去,然后还有就是一些ARM需要点h

这个图就是需要的最少的文件了

在IAR中使用C++写单片机程序_第3张图片

  1. 开始启动芯片

在IAR中使用C++写单片机程序_第4张图片

语言是预先选好的C++ 然后我自己勾选的标准的,应该没什么大的区别的。

在IAR中使用C++写单片机程序_第5张图片

选好芯片型号,让IAR自己配置内存和FLASH地址生成

在IAR中使用C++写单片机程序_第6张图片

我用的J-link调试的芯片,那个terminal I/O会用的。

然后写好时钟配置函数配置好时钟(不配置上电默认8Mhz也能用)

在IAR中使用C++写单片机程序_第7张图片

编译下载之后各项功能正常使用,等等讲terminal I/O的使用

在IAR中使用C++写单片机程序_第8张图片

我还点了2个灯

在IAR中使用C++写单片机程序_第9张图片

我的时钟函数前面加了extern “C”   {     然后我发现声明函数的时候编译器会报错,遇到这个情况在声明函数的前面加上  extern “C”   {  就好了

 

在IAR中使用C++写单片机程序_第10张图片

在IAR中使用C++写单片机程序_第11张图片

  1. terminal I/O的使用

在IAR中使用C++写单片机程序_第12张图片

把库全勾上就行,然后使用JTAG模式

这样就能使用cin cout或者是printf 和scanf也可以用的噢,需要输入的时候那个terminal I/O窗口会弹出来要求你输入东西进去。

 

我接着试了一下string 也能用

 

今天没事也baidu了一下,对使用C++写单片机的有支持的也有不支持的。是单片机需要控制底层硬件,我也想了想用C++是不能很好的去弄,但是我也注意到了C/C++是可以不分开的,C部分和C++部分可以分开,而且很多数据的处理之类的用C++很方便而C还要一点点写,一点去copy。

 

个人原创,转载请注明出处。嵌入式爱好QQ群:722397182

 

关于源码在github上:https://github.com/DuXiangwen

你可能感兴趣的:(IAR,C++)