【Proteus仿真】VSM Studio Arduino UNO串口通讯示例
【Proteus仿真】VSM Studio Arduino UNO串口通讯示例
- Proteus仿真演示

实验说明
- 需要借助虚拟串口工具,生成1对(2个虚拟串口端口号)。

- 需要借助串口调试助手,来仿真时用于通讯。
- Proteus仿真器件
compim属性设置

- 虚拟串口监视器器件
如果是VSM Studio代码这里默认即可,如果是Arduino IDE导入进来的 Hex文件,并且有作为字符的,使用ANSI
Arduino IDE编译环境下的文本格式默认是ANSI编码格式。
消除VSM Studio编译是的报警宏提示信息办法(无关紧要)在这里插入图片描述
- 在芯片型号上,鼠标右键

- 选项设置为默认

- 编译是选择
Release

- 仿真时串口调试助手设置

VSM Studio代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| /\* Main.ino file generated by New Project wizard \* \* Created: Thu Sep 5 2013 \* Processor: ATmega328P \* Compiler: Arduino AVR \*/ #include<Arduino.h> String input_string; // 声明变量 input\_string ,用于存储串口输入的数据 // 获取串口数据函数 void GetSerialStuff(String& input_string) { String temp_string = ""; // 声明变量 temp\_string,用于临时存储串口输入的数据 while(Serial.available()) { // 当串口有数据时,循环执行 temp_string += (char)Serial.read(); // 把读取的串口数据,逐个组合到inStr变量里 delay(2); } if(temp_string.length()!=0){ input_string = temp_string; // 把引用指针的变量赋值给 input\_string Serial.println("received data:" + input_string );//打印字符串 } } void setup() { Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT ); Serial.println("hello world");
}
void loop() { GetSerialStuff(input_string); // 获取串口的数据 if(input_string != "") { // 如果 串口不为空,则 if(!input_string.compareTo("on")) {//相等返回0 Serial.println("ON"); digitalWrite(LED_BUILTIN,HIGH); } if(!input_string.compareTo("off")) { Serial.println("OFF"); digitalWrite(LED_BUILTIN,LOW); } input_string="";//清空数据 }
}
|
仿真资源和程序源码
本实验基于Proteus8.12平台
1 2 3
| 链接:https://pan.baidu.com/s/1dLNpW8jfMVF9h1FGNk0QSQ 提取码:rb5s
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!