
开发单片机应用程序,目前大家用得最多的,还是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语言的低了。 完整的工程就不上了。 欢迎大家拍砖。 ^_^ |
MCSDK FOC应用详解
STM32F10xxx 正交编码器接口应用笔记 及源代码
基于STM32定时器ETR信号的应用示例
《无刷直流电机控制应用 基于STM8S系列单片机》
STM32定时器触发SPI逐字收发之应用示例
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
无刷直流电机控制应用+基于STM8S系列单片机---电子书
STM32 USB的程序,包含固件、驱动和测试用的应用程序
工业以太网总线ETHERCAT驱动程序设计及应用(扫描版)
mbed上全是c++开发者
一行程序都没写过
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++开发应用程序
RE:【MCU 实战经验】STM32F4: 用C++开发应用程序
RE:【MCU 实战经验】STM32F4: 用C++开发应用程序