上位机 如何将多个数据从串口提取出来_10min教你编写C#上位机控制Arduino板载LED...

本文通过一个简单的任务——使用C#上位机控制Arduino板载LED,详细介绍了如何进行串口通信。从编写Arduino闪烁LED程序,到加入串口发送和接收功能,再到C#上位机的开发,包括界面绘制和后台串口程序的编写,最终实现了通过上位机控制LED的开闭。
摘要由CSDN通过智能技术生成

点上方蓝字关注我们

每天都有好玩的东西等着你

b82dc43ded3331902ac707681e746f2d.png

    之前在CSDN连载了《C#上位机开发》这个系列,获得了不错的阅读量和好评,但是有很多小伙伴加我之后询问上位机问题时,都是从事纯软件开发,对串口、单片机、USB转串口这些名词不了解,所以,本文以一个编写串口上位机控制Arduino板载LED的小任务,来完整的展示如何从下位机做到上位机,包含了Arduino、串口、C#编程程,麻雀虽小,可是五脏俱全哦~

1.任务需求

编写一个电脑上位机控制Arduino板载LED。

2.明确任务需求

拿到这个任务,首先要确定一些不确定的因素(非常重要,不然,产品经理和攻城狮的故事,你懂得~)。比如在这个任务中只是说编写一个电脑上位机,具体的问题没有说明:

  • 没有说明上位机使用什么原因编写;

  • 没有说明上位机与Arduino开发板使用什么方式进行通信;

那么,接下来就是根据自己的水平和实际情况来确定这两个问题

  • 关于编程语言:我会C#,Qt,Matlab,都可以编写,但是此处不需要跨平台,没有大量数据分析,所以选择使用C#,可以最快完成;

  • 关于通信方式:电脑和Arduino之间可以使用串口、USB、网络通信,此处没有硬性要求,当然选择串口是最简单的;

  • 关于通信协议:这个是为了练手,肯定是越简单越好,上位机发送'o',Arduino收到后打开LED,上位机发送'f',Arduino收到后关闭LED。

3.实现思路

确定了任务需求后,在做嵌入式产品的时候讲究的是慢,稳,一步一步的来实现:

  • ① 编写Arduino程序让LED以1s的间隔闪烁;

  • ② 加入串口发送数据功能,使用Arduino自带串口监视器测试;

  • ③ 加入串口接收功能,使用Arduino自带串口监视器测试;

  • ④ 硬件程序搞定,编写上位机利用串口发送数据;

4.硬件程序

LED闪烁程序

int led = 13;

void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

编译:

1ae97e20ebd7851ddf8f535bedd066e3.png
fb581426fec724a905d6c40e3c91a956.png

烧写:
9a0ad05949c21e4ea0141faf887f3f72.png

这个时候即可成功到板载LED闪烁。

加入串口发送功能

首先初始化串口,设置波特率为115200

Serial.begin(115200);

然后打印输出提示信息:

Serial.println("please select 'o' or 'f' to control led:");

程序更改为如下:

int led = 13;

void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);  
  digitalWrite(led, LOW);
  Serial.begin(115200);
  Serial.println("please select 'o' or '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值