一直就很想学学C++,想等等以后调智能车的时候写写上位机玩玩。只是很可惜了一直没时间学,C++没学多少倒是在写单片机的时候C语言精通了…
今天没事看了看C++ primer 顺便搞搞C++的单片机编程,只知道可以用C/C++编但是一直还没用过。
该程序使用IAR 8.2 STM32RBT6单片机
- 新建工程
新建工程也没什么差别。
我直接选的ARM 的C++ 不是Empty project (其实差别不大,如果IAR熟练的话)
然后工程里面只有一个main.cpp 这就不是.c了噢。这说明了这是一个C++工程了。
- 准备单片机的文件
单片机需要启动文件的啊
我还会拷一个芯片的点h寄存器地址的文件进去,然后还有就是一些ARM需要点h
这个图就是需要的最少的文件了
- 开始启动芯片
语言是预先选好的C++ 然后我自己勾选的标准的,应该没什么大的区别的。
选好芯片型号,让IAR自己配置内存和FLASH地址生成
我用的J-link调试的芯片,那个terminal I/O会用的。
然后写好时钟配置函数配置好时钟(不配置上电默认8Mhz也能用)
编译下载之后各项功能正常使用,等等讲terminal I/O的使用
我还点了2个灯
我的时钟函数前面加了extern “C” { 然后我发现声明函数的时候编译器会报错,遇到这个情况在声明函数的前面加上 extern “C” { 就好了
- terminal I/O的使用
把库全勾上就行,然后使用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