51单片机如何读取sql数据库?

51单片机如何读取sql数据库?,第1张

你需要做个个串口通讯,将单片机的数据上载到电脑端,电脑端要写一个上位机。可讲通讯过来的数据存入 sql server的数据库中

单片机端需要写串口程序,PC 端需要些上位机软件 VB可以写用MSComm1 控件

通讯例子如下

Dim i As Integer

Dim a As Integer

Dim t() As Byte

Private Sub Command1_Click()

If Command1.Caption = "打开串口" Then

'Shape1.Visible = True

Shape1.FillColor = &HFF&

Shape1.BackColor = &HFF&

Shape1.BorderColor = &HFF&

Command2.Enabled = True

Command3.Enabled = True

Command1.Caption = "关闭串口"

'MSComm1.CommPort = 1 '设定Com1口

MSComm1.CommPort = Combo1.Text '设定Com1口

If MSComm1.PortOpen = False Then

'MSComm1.Settings = "4800,N,8,1" '4800波特率,无校验,8位数据位,1位停止位

MSComm1.Settings = Combo2.Text &"," &Combo3.Text &"," &Combo4.Text &"," &Combo5.Text '4800波特率,无校验,8位数据位,1位停止位

MSComm1.InputLen = 1 '读取接收缓冲区的所有字符

MSComm1.InputLen = 5

MSComm1.InBufferSize = 5 '设置接收缓冲区为1024字节

MSComm1.OutBufferSize = 5 '设置发送缓冲区为512字节

MSComm1.SThreshold = 0 '不触发发送事件

MSComm1.RThreshold = 1 '每一个字符到接收缓冲区都触发接收事件

MSComm1.PortOpen = True '打开串口

End If

MSComm1.OutBufferCount = 0 '清空发送缓冲区

MSComm1.InBufferCount = 0 '清空接收缓冲区

Dim temp() As Byte

Else

'Option2.Value = False

'Option1.Value = False

'Shape1.Visible = False

Shape1.BackColor = &H808080

Shape1.BorderColor = &H808080

Shape1.FillColor = &H808080

Command2.Enabled = False

'Command3.Enabled = False

MSComm1.PortOpen = False

Command1.Caption = "打开串口"

End If

End Sub

Private Sub Command2_Click()

'Command2.Enabled = False

'Option2.Value = False

'Option1.Value = False

'Shape2.Visible = False

MSComm1.OutBufferCount = 0 '清空发送缓冲区

MSComm1.InBufferCount = 0 '清空接收缓冲区

't(0) = "255"

' MSComm1.Output = t

MSComm1.Output = Text2.Text

End Sub

Private Sub Command3_Click()

Text1.Text = ""

End Sub

Private Sub Command5_Click() '退出

End

End Sub

Private Sub Command6_Click()

Text2.Text = ""

End Sub

Private Sub Command7_Click()

If Command7.Value Then

'Command7.Visible = False

Command1.Visible = True

Command2.Visible = True

Command3.Visible = True

Command6.Visible = True

Label1.Visible = True

Label2.Visible = True

Label3.Visible = True

Label4.Visible = True

Label5.Visible = True

Label6.Visible = True

Label7.Visible = True

Combo1.Visible = True

Combo2.Visible = True

Combo3.Visible = True

Combo4.Visible = True

Combo5.Visible = True

Text1.Visible = True

Text2.Visible = True

Frame1.Visible = True

Frame2.Visible = False

'Command3.Visible = False

'Option1.Value = False

Shape1.Visible = True

Else

Label1.Visible = False

Label2.Visible = False

Label3.Visible = False

Label4.Visible = False

Label5.Visible = False

Label6.Visible = False

Label7.Visible = False

Combo1.Visible = False

Combo2.Visible = False

Combo3.Visible = False

Combo4.Visible = False

Combo5.Visible = False

Command1.Visible = False

Command2.Visible = False

Command3.Visible = False

Text1.Visible = False

Text2.Visible = False

Frame1.Visible = False

Frame2.Visible = False

End If

End Sub

Private Sub Form_Load()

MSComm1.InBufferCount = 0 '清除发送缓冲区数据

MSComm1.OutBufferCount = 0 '清除接收缓冲区数据

ReDim t(0)

t(0) = "0"

Combo1.AddItem "1"

Combo1.AddItem "2"

Combo1.AddItem "3"

Combo1.AddItem "4"

'Combo1.Text = "1"

Combo2.AddItem "300"

Combo2.AddItem "600"

Combo2.AddItem "1200"

Combo2.AddItem "2400"

Combo2.AddItem "4800"

Combo2.AddItem "9600"

Combo2.AddItem "19200"

Combo3.AddItem "N"

Combo3.AddItem "O"

Combo3.AddItem "E"

Combo4.AddItem "8"

Combo4.AddItem "7"

Combo4.AddItem "6"

Combo5.AddItem "1"

Combo5.AddItem "2"

Combo5.AddItem "3"

End Sub

Private Sub MSComm1_OnComm()

Dim s1 As String

Dim s2 As String

Select Case MSComm1.CommEvent

Case comEventOverrun '数据丢失

Text_SEND.Text = "" '清空发送缓冲区

Text_RECV.Text = "" '清空接收缓冲区

Text_SEND.SetFocus

Exit Sub

Case comEventRxOver '接收缓冲区溢出

Text_SEND.Text = "" '清空发送缓冲区

Text_RECV.Text = "" '清空接收缓冲区

Text_SEND.SetFocus

Exit Sub

Case comEventTxFull '发送缓冲区已满

Text_SEND.Text = "" '清空发送缓冲区

Text_RECV.Text = "" '清空接收缓冲区

Text_SEND.SetFocus

Exit Sub

Case comEvReceive '接收字符数据

Dim Buffer As Variant

MSComm1.InputLen = 1

MSComm1.InputMode = comInputModeBinary '二进制传输

Buffer = MSComm1.Input

'Text1.Text = Buffer(0)

's2 = Buffer(1)

Text1.Text = Text1.Text &(Val(MSComm1.Input)) &" "

Case Else

End Select

End Sub

Private Sub Option1_Click()

End Sub

1、直接:单片机配以太网接口,移植个tcp/ip协议站,单片机直接登陆服务器上传数据;

2、间接:单片机通过串口、USB等其他接口把数据传给有以太网的模块或设备(如电脑),在传到服务器。


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

原文地址: http://outofmemory.cn/sjk/6659789.html

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

发表评论

登录后才能评论

评论列表(0条)

保存