|
开发单片机应用程序,目前大家用得最多的,还是C语言。 其实,ARM公司的MDK是支持C++开发的。 步骤如下: 1、选择菜单【Project】--->【Options for Target 'xxx'】(xxx是项目名称),在打开的对话框中,选择【c/c++】,在【Misc Controls】中,填入:--cpp。这样,MDK就支持c++,就认识c++相关关键字,比如:class、public、protect。 2、添加你写的C++源程序到项目中。 由于受WTL的影响,我习惯把c++类的定义和实现都放在.h或.hpp文件中。 这样的好处是:添加C++类的成员变量和函数比较方便,不会写错,另外就是,在代码中引用C++的类比较方便,只要包含.h或.hpp就行了。 缺点是:如果类的成员变量和成员函数比较多的话,阅读代码吃力。 对于缺点,对于我来说,也不算缺点。因为我习惯于写小代码,习惯于把复杂问题简单化。 说了那么多,现在上代码。一个简单的点亮LED的类,我把它叫CLed类,存放在led.hpp文件中。 led.hpp的内容如下:
当要用到CLed类时,只要: #include "led.hpp" 就可以了。 实例化CLed就很简单,比如:
MDK的优化效果不错,对于上述3个LED灯的点亮,只使用了2行汇编代码就实现了,分别led1的2个灯的点亮,和led2的1个灯的点亮。 这C++代码的执行效果,并不比C语言的低了。 完整的工程就不上了。 欢迎大家拍砖。 ^_^ |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
RE:用C++开发STM32应用程序
比如,如果使用的处理器是STM32F0,可以这样初始化引脚。
void Led_Init(void)
{
GPIO_InitTypeDef gp;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC,ENABLE);
gp.GPIO_PuPd = GPIO_PuPd_UP;
gp.GPIO_Mode = GPIO_Mode_OUT;
gp.GPIO_OType = GPIO_OType_PP;
gp.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
gp.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&gp);
}
RE:用C++开发STM32应用程序
RE:用C++开发STM32应用程序
RE:【MCU 实战经验】用C++开发STM32应用程序
RE:【MCU 实战经验】用C++开发STM32应用程序
#pragma once
#include ”stm32f10x.h“
template // 有效状态时的电平高低,默认低
class CKey
{
public:
CKey(GPIO_TypeDef* gpio, int pins) // 以端口和引脚构造函数
{
m_gpio = gpio;
m_pins = pins;
}
int ReadKey() // 读键(读到是键位值,高为有效键值)
{
if(T) // 高电平为有效按键
{
return (m_gpio->IDR & m_pins);
}
else // 低电平为有效按键
{
return ((~m_gpio->IDR) & m_pins);
}
}
protected:
GPIO_TypeDef* m_gpio; // GPIO_TypeDef指针
int m_pins; // 引脚
};
使用时,#include进来就行。
RE:【MCU 实战经验】STM32F4: 用C++开发应用程序
RE:【MCU 实战经验】STM32F4: 用C++开发应用程序
C++是面向对象的,而C语言是面向过程的。
C++与C的比较,百度一下就行了。
RE:【MCU 实战经验】STM32F4: 用C++开发应用程序
RE:【MCU 实战经验】STM32F4: 用C++开发应用程序