主题 : 新人求助 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 98665
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2013-12-03
最后登录: 2019-04-10
楼主  发表于: 2013-12-04 09:36

 新人求助

哪位有Micro2440开发板上wince下AD-Convert源码?多谢
级别: 新手上路
UID: 98665
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
综合积分: 32 分
注册时间: 2013-12-03
最后登录: 2019-04-10
1楼  发表于: 2013-12-05 17:19

 麻烦高手指点wince中adc为何一直打不开通道?

Public Class Form1

       Declare Function CreateFile Lib "coredll.dll" Alias "CreateFile" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As IntPtr, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As IntPtr) As IntPtr
    Declare Function DeviceIoControl Lib "coredll.dll" Alias "DeviceIoControl" (ByVal hDevice As System.IntPtr, ByVal dwIoControlCode As Integer, ByVal lpInBuffer() As Byte, ByVal nInBufferSize As Integer, ByVal lpOutBuffer() As Byte, ByVal nOutBufferSize As Integer, ByVal lpBytesReturned As Integer, ByVal lpOverlapped As System.IntPtr) As Boolean
    Declare Function CloseHandle Lib "coredll.dll" Alias "CloseHandle" (ByVal hDevice As System.IntPtr) As Boolean

     Const OPEN_EXISTING = 3
    Const GENERIC_READ = &H80000000
    Const GENERIC_WRITE = &H40000000
    Const INVALID_HANDLE_VALUE = -1

       Const ADC_CH0 = 0
    Const ADC_CH1 = 1
    Const ADC_CH2 = 2
    Const ADC_CH3 = 3

       Private hPort As Integer

    Private Function getAdc(ByVal ch As UInteger) As String
        Dim rBuf(4) As Byte
        Dim sBuf() As Byte = {0}
        Dim rLen, rOutput As UInteger

               If (hPort <> INVALID_HANDLE_VALUE) Then
          
            DeviceIoControl(hPort, ch, Nothing, 0, rBuf, rLen, 0, IntPtr.Zero)
            rOutput = BitConverter.ToInt32(rBuf, 0)
        End If
        getAdc = rOutput.ToString()
    End Function

    Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick
      
        textBox1.Text = getAdc(ADC_CH0)
        textBox2.Text = getAdc(ADC_CH1)
        textBox3.Text = getAdc(ADC_CH2)
        textBox4.Text = getAdc(ADC_CH3)
      
    End Sub

    Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
         timer1.Enabled = True
    End Sub

    Private Sub cmdStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStop.Click
               timer1.Enabled = False
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      
        hPort = CreateFile("ADC1:", &HC0000000, 0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero)
        If (hPort = INVALID_HANDLE_VALUE) Then
            MsgBox("Open ADC1 Driver Fail")
        End If
    End Sub

    Private Sub Form1_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        If (hPort <> INVALID_HANDLE_VALUE) Then
                    CloseHandle(hPort)
        End If
    End Sub

    Private Sub textBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles textBox1.TextChanged

    End Sub
End Class