可以用IAR给Arduino写程序吗? 我想用arduino写一个程序,要求如下。
arduino\u7528\u5176\u4ed6\u7f16\u7a0b\u8bed\u8a00\u5199\u7a0b\u5e8f\u5417Arduino\u4e3b\u8981\u7684\u5f00\u53d1\u8bed\u8a00\u662fC\u8bed\u8a00\uff0c\u5e93\u5927\u90e8\u5206\u662fC++\u3002Arduino\u7684C\u8bed\u8a00\u7f16\u8bd1\u73af\u5883\u662f\u57fa\u4e8egcc\u7684\u4e00\u4e2a\u884d\u751f\u7248\u672cgcc-avr\u4fee\u6539\u800c\u6765\u7684\u3002
int buttonPin = \u6570\u5b57; // \u6309\u952ekey1\u7684\u7ba1\u811a\u5b9a\u4e49
int ledPin = \u6570\u5b57; // LED1\u706f\u7ba1\u811a\u5b9a\u4e49
int buttonPin_2 = \u6570\u5b57; // \u6309\u952ekey2\u7684\u7ba1\u811a\u5b9a\u4e49
int ledPin_2 = \u6570\u5b57; // LED2\u706f\u7ba1\u811a\u5b9a\u4e49
int buttonState = 0; // \u5b58\u50a8\u6309\u952e\u72b6\u6001\u503c
int buttonState_2 = 0; // \u5b58\u50a8\u6309\u952e\u72b6\u6001\u503c
bool led_1 = false; // \u5b58\u50a8\u4eae\u706f\u72b6\u6001\u503c
bool led_2 = false; // \u5b58\u50a8\u4eae\u706f\u72b6\u6001\u503c
void setup() {
pinMode(ledPin, OUTPUT); //\u8bbe\u7f6eLED\u7ba1\u811a\u8f93\u51fa\u6a21\u5f0f
pinMode(buttonPin, INPUT_PULLUP); //\u8bbe\u7f6e\u6309\u952e\u7ba1\u811a\u4e0a\u62c9\u8f93\u5165\u6a21\u5f0f
pinMode(ledPin_2, OUTPUT); //\u8bbe\u7f6eLED\u7ba1\u811a\u8f93\u51fa\u6a21\u5f0f
pinMode(buttonPin_2, INPUT_PULLUP); //\u8bbe\u7f6e\u6309\u952e\u7ba1\u811a\u4e0a\u62c9\u8f93\u5165\u6a21\u5f0f
}
void loop() {
buttonState = digitalRead(buttonPin); //\u8bfb\u53d6\u6309\u952e1\u8fd4\u56de\u72b6\u6001\u503c
buttonState_2 = digitalRead(buttonPin_2); //\u8bfb\u53d6\u6309\u952e2\u8fd4\u56de\u72b6\u6001\u503c
if (buttonState == LOW && buttonState_2 == HIGH) { // \u82e5\u6309\u952e1\u88ab\u6309\u4e0b \u82e5\u6309\u952e2\u88ab\u677e\u5f00
delay(80); //\u7b49\u5f85\u8df3\u8fc7\u6309\u952e\u6296\u52a8\u7684\u4e0d\u7a33\u5b9a\u8fc7\u7a0b
if (buttonState == LOW && buttonState_2 == HIGH) // \u82e5\u6309\u952e1\u88ab\u6309\u4e0b
{
digitalWrite(ledPin, HIGH); // \u70b9\u4eaeLED\u706f
led_1 = true;
led_2 = false;
}
}
else if(buttonState == HIGH && buttonState_2 == LOW) { // \u82e5\u6309\u952e2\u88ab\u6309\u4e0b \u82e5\u6309\u952e1\u88ab\u677e\u5f00
delay(80); //\u7b49\u5f85\u8df3\u8fc7\u6309\u952e\u6296\u52a8\u7684\u4e0d\u7a33\u5b9a\u8fc7\u7a0b
if (buttonState == HIGH && buttonState_2 == LOW) { // \u82e5\u6309\u952e2\u88ab\u6309\u4e0b
digitalWrite(ledPin_2, HIGH); // \u70b9\u4eaeLED\u706f
led_1 = false;
led_2 = true;
}
}
else if(buttonState == LOW && buttonState_2 == LOW) { // \u540c\u65f6\u6309\u4e0b\u539f\u6765\u4eae\u54ea\u4e2a\u5c31\u4eae\u90a3\u4e2a
if (led_1){
digitalWrite(ledPin, HIGH); // \u70b9\u4eaeLED1\u706f
}
else if (led_2){
digitalWrite(ledPin_2, HIGH); // \u70b9\u4eaeLED2\u706f
}
}
else {
// \u7184\u706dLED\u706f
led_1 = false;
led_2 = false;
digitalWrite(ledPin, LOW);
digitalWrite(ledPin_2, LOW);
}
}
\u5982\u679c\u4f60\u60f3\u540c\u65f6\u6309\u706d\u706f\u7684\u8bdd\u5c31\u628a\u540c\u65f6\u6309\u90a3\u91cc\u6539\u4e00\u4e0b\u5c31\u597d\u4e86^^
一. Proteus仿真平台简介
Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。现已受到电子类特别是单片机爱好者、从事单片机教学的教师、致力于单片机开发应用等的科技工作者的青睐。以前的如EWB等软件只能仿真数字电路和模拟电路,不能仿真CPU和程序。
当前网上Proteus有7.8 SP2,7.10 SP0,8.0等几个版本,这几个JM的版本都比较稳定。这些版本的元件模型格式是兼容的,DSN仿真原理文件是一样的。8.0版本只是把DSN原理图、软件编辑环境和编译器集成为一个工程文件,成为一个象“傻瓜相机”一样的东西,但对初学Proteus者比较方便,因为内部已经集成了程序编辑器和可下载不同的编译器。
7.xx版本,DSN仿真原理、编辑器和编译器三者是独立的。而8.0版本是集成的。8.0版本在多CPU仿真时,设置不太容易;集成后软件有点大,不如7.xx版本简洁。
二. 开发三步曲
编辑器
用户选择用自己的喜欢的编辑器(如Notepad++,Utraedit,Source Insight,vim,slickedit,notepad等),用此写源程序。C/C++编译器
用户按CPU型号选择自己喜欢的C/C++编译器(如Winavr,CodeSourcery,Keil,IAR,WinARM,Watcom等等),一般的编译器都可以生成标准的.hex,和.elf格式的可执行目标文件。 Arduino IDE实际使用的是Winavr中的gcc。用此把第一步写的源程序编译成.hex和.elf文件。硬件仿真图
Proteus中的Model下有元件仿真库,用户使用这些仿真元件,设计出自己的硬件仿真原理图,也叫.dsn文件。在Proteus环境下,用自己设计的.dsn文件,在CPU中加载第二步生成的.hex或.elf文件,就可以仿真运行了。.elf文件内部包含调试信息,可以单步、设置断点调试程序。选择File->Preferences
找到设置偏好文件preferences.txt
用编辑器打开偏好设置文件preferences.txt
【1】.在arduino工具的File->preferences中找到preferences.txt文件,用记事本打开。
【2】.在preferences.txt文件的最后加一行,编辑加入 build.path=d:\MyHexDir,目录名自己定。为了观察方便,(本人设置是build.path=d:###ArduinoDbgDir )。
【3】先关闭Arduino IDE;
【4】之后保存preferences.txt;
以上顺序不要变。这样就可以在Arduino编译时,看到d:\MyHexDir目标下的目标文件,而不会自动删除。- ///0. 引脚定义
- #define LED_PIN 13 //定义LED引脚为13号数据引脚(DIG13)
- ///1. 初始化
- void setup() {
- pinMode(LED_PIN,OUTPUT); // 初始化DIG13为输出
- }
- ///2. 循环
- void loop() {
- digitalWrite(LED_PIN,HIGH); //DIG13输出高电平
- delay(1000); //延时1秒
- digitalWrite(LED_PIN,LOW); //DIG13输出低电平
- delay(1000); //延时1秒
- }
三. Arduino UNO硬件仿真原理图
本仿真电路图(HW目录下Arduino UNO.dsn文件)可以仿真Arduino Diecimila,或Arduino UNO板。前者采用FT232芯片做为串行通信模块,后都采用ATMEGA16U2微处理器代替了FT232,它们都是在USB上实现一个异步串行通信的功能。我们在仿真中,采用了Proteus中的串行口物理接口模型COMPIM,COMPIM完全可以代替串行通信的功能,它实现了与实际PC机物理串行接口RS232的连接,使仿真的虚拟世界与真实的世界连接。
图1-Arduino UNO硬件仿真原理图
图中左下角增加了两个串行通信虚拟终端VT1和VT2,用于调试串行通信接收数据或发送数据使用。其它为Arduino Diecimila或UNO的仿真电路,详细标注了引脚名称,与实现电路板一样。用Proteus仿真工具可以双击Arduino UNO.dsn打开Arduino仿真电路图。
四. Arduino开发软件下载及设置
1.下载并安装Arduino集成开发环境(Arduino IDE)
到官网上下载并安装Arduino IDE,当前最新稳定版本为1.0.6版本。
http://arduino.cc
http://arduino.cc/en/Main/Software
2.选择Arduino板类型及串行口
如图2,仿真时,选择前两个板都可以,在与实际Arduino板连接时,选择相对应的板,并选择相对应的串行口。
***因本文使用Arduino仿真开发方法,在仿真电路图中,只要选择目标执行文件.hex或.elf文件就相当于加载程序,所以不用串行口加载程序。
图2-选择板子型号
图3-选择串行口
3.设置Arduino IDE个人偏好(重要)
图4-选择preferences
图5-选择preferences.txt
4. 编译
(1)双击SW\Blink目录下的源文件Blink.ino,自动打开Arduino IDE。
(2)点击Sketch->Verify/Compile编译生成目标文件,目标文件在d:\MyHexDir下(本人的在d:###ArduinoDbgDir目录下 )。
(3)点击CP.bat,会把.hex和.elf文件复制更新到当前.ino所在目录下。可以自己编辑CP.bat文件,改变目录。
(4)在Proteus中设置好一次.hex或.elf文件的位置就可以,以后更新.hex或.elf文件时,自动认为已经加载最新的。
五. 第一个Hello World程序仿真运行
Hello World程序就是在计算机屏幕上显示“Hello,World!”的一个程序,在嵌入式系统开发中,LED的闪烁程序就是Hello World程序,Hello World程序很简约,一般它是程序员在新的开发环境中第一个要运行的程序,但是简约并不简单。
虽然Hello World程序很简约,但是,为了这个简约的程序能够运行,需要进行开发工具链的选择、配置开发工具链,这需要大量繁琐的工作要做。Hello World程序能否运行,可以验证你的编译、开发环境、运行环境是否正确。
第一个程序Blink.ino如下:
(1)用Arduino IDE打开Blink.ino,编译之;
(2)在d:\MyHexDir目录下会生成.hex和.elf文件等;
(3)点击.ino所在目录下的CP.bat, 本目录多了两个文件.hex和.elf;
(4)用Proteus打开HW\Arduino UNO.dsn,双击Atmga 328P微处理器,在Program file项中选择上边SW\Blink\Blink.hex文件,或Blink.elf文件,若加载Blink.elf文件,则可以单步或设置断点调试;
(5)在Proteus中点击左下角运行仿真,如果图1中的LED小灯闪烁,则你的仿真运行环境设置正确。
taptap下载的安装包在哪?有一些玩家在taptap上下载了安卓手游后想传到电脑上用电脑版安卓模拟器玩游戏,那么taptap下载的游戏储存位置在哪里呢,来看看taptap游戏安装包位置一览吧。

首先可以在手机目录搜taptaptmp,
不过taptap平台默认是装完直接删掉安装包的。
如果需要保存游戏的话,最好先去设置里面关闭【自动删除安装包】。
taptap下载的游戏安装包具体地址:
/sdcARd/Android/data/com.taptap/files/Download/taptaptmp/
以上就是taptap下载的安装包在哪,taptap游戏安装包位置一览的相关介绍,希望对各位玩家有所帮助。
绛旓細3. 缂栫▼杞欢璁剧疆锛氱‘淇濅綘浣跨敤鐨勭紪绋嬭蒋浠惰缃纭備笉鍚岀殑寮鍙戞澘鍜岃澶囧彲鑳介渶瑕佺壒瀹氱殑缂栫▼杞欢锛屽Arduino IDE銆並eil銆IAR绛夈傚湪缂栫▼杞欢涓夋嫨姝g‘鐨勬澘鍨嬪拰涓插彛璁剧疆锛屼互纭繚绋嬪簭鑳藉姝g‘涓婁紶銆4. 鑺墖闂锛氬鏋滀互涓婃楠ら兘娌℃湁瑙e喅闂锛屽彲鑳芥槸CH340C鑺墖鏈韩鍑虹幇闂銆鍙互灏濊瘯浣跨敤鍏朵粬CH340C鑺墖鎴栨洿鎹...