怎样简单的Arduino与上位机的串口通信

怎样简单的Arduino与上位机的串口通信,第1张

通过蓝牙连接手机和Arduino
a) 接线
VCC:接Arduino的5V
GND:接Arduino的GND
TXD:发送端,一般表示为自己的发送端,接Arduino的RX
RXD:接收端,一般表示为自己的接收端,接Arduino的TX。
b) 写Arduino端程序
void setup()
{
Serialbegin(9600);
}
void loop()
{
while(Serialavailable())
{
char c=Serialread();
if(c=='A')
{
Serialprintln("Hello I am amarino");
}
}
}
把程序安装到Ardunio开发板时,请先断开蓝牙模块,因为它们的数据都走串口,会引起冲突造成安装失败。

什么让我感觉做四字节的好复杂啊 还好我那时(很久以前的事了~~)是做八字节的
希望对你有帮助~~~
Private Sub MSComm1_OnComm()
Dim ReceiveData As Single
Dim temp As Variant
Dim ReceiveDataBuffer_h, ReceiveDataBuffer_l As Single
If MSComm1CommEvent = comEvReceive Then

i = i + 1
temp = AscB(MSComm1Input)
Call ufvn_cls '清前一屏的坐标点
Call ufvn_reset '重绘坐标线

If i = 1 Then
If temp = 128 Then '下位机发送的标识位 确保发送的数据是完整的正确的,以便进入i=2
i = 1
Else
i = 0
End If
End If

If i = 2 Then '接收数据高位
ReceiveDataBuffer_h = temp
Text1Text = ReceiveDataBuffer_h
MSComm1InBufferCount = 0
End If

If i = 3 Then '接收数据低位
ReceiveDataBuffer_l = temp
MSComm1InBufferCount = 0
Text2Text = Text1Text + ReceiveDataBuffer_l / 100
i = 0
ufvn(130) = Val(Text2Text) 24 '把接收的数据转换成坐标值
For j = 1 To 129 '重绘下一屏的数据 以连接成完整的波形图
ufvn(j) = ufvn(j + 1) '把数据向前传
Next j

Call ufvn_main '重绘此刻的波形
End If
End If
End Sub

看来 似乎 有不少问题
1、pl2303 需要驱动,你安装了吗?正常 安装后会有 新的 COM 端口,弄清楚 端口号
2、单片机 与 电脑之间 的 串口通信 线路要正常 连接
3、2端的编程,电脑 端 VB 编程、单片机 端 汇编 或者 C语言
电脑 端 VB 串口 编程 推荐 看书
Visual_Basic与_RS-232_串行通信控制
单片机 端 汇编 或者 C语言
建议 去 百度文库 里搜 单片机编程100例 的 文档
任重而道远,祝好

如果是上位机收到的数据被覆盖的话,建议你检查一下上位机的串口接收中断函数,同时要特别注意的一点是:硬件的时间延迟,这在嵌入式系统开发的过程中经常会遇到,建议如果你知道确定的通信协议的字节数的话,可以不采用串口接收中断的方式接收,而是采用一种循环:一直循环到接收到指定的字节数才停止接收。

一般来说,测试上下位机通信。
先使用工具测试你的下位机,完全通信成功后,在用来调试你的上位机。
不然你话,你都不知道错误在哪里。
加入下位机不是开发的,根本就无法证明是否是下位机的错误。
先使用串口精灵之类的调试你的开发板。
确认是 OK 了之后,在调试你的程序。
//如果你的程序功底足够深,就可以通过你的程序确定是上,还是下位机的问题了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12856128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存