国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 12672|回復(fù): 6
打印 上一主題 下一主題

[提問(wèn)] 上位機(jī)(VB6.0)與下位機(jī)(STM32)通過(guò)USB接口通訊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2012-8-23 14:38:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: USB接口通訊
您好LZ,請(qǐng)問(wèn)下,我是用VB6.0做上位機(jī),STM32做下位機(jī)。通過(guò)上位機(jī)VB發(fā)送一個(gè)指令,下位機(jī)(STM32)收到后,執(zhí)行對(duì)應(yīng)的命令,這是怎么實(shí)現(xiàn)的,例如STM32點(diǎn)亮8個(gè)LED發(fā)光二極管!從VB中發(fā)送出來(lái)
地址 &H00,&H01,&H02,&H03,&H04,&H05,&H06,&H07
電平 1        1        1      1         1       1       1        1
對(duì)應(yīng)下位機(jī)
燈的狀況  
LED0  LED1  LED2   LED3   LED4   LED5   LED6   LED7
亮     亮   亮    亮     亮    亮    亮     亮
沙發(fā)
發(fā)表于 2012-8-23 15:03:49 | 只看該作者
搞什么?  通信通沒(méi)通?沒(méi)通說(shuō)個(gè)P先搞通再說(shuō),通了說(shuō)個(gè)p隨便怎么定義。


測(cè)試直接回帖。
板凳
 樓主| 發(fā)表于 2012-8-24 09:09:38 | 只看該作者
dddg 發(fā)表于 2012-8-23 15:03
搞什么?  通信通沒(méi)通?沒(méi)通說(shuō)個(gè)P先搞通再說(shuō),通了說(shuō)個(gè)p隨便怎么定義。

多謝您,上位機(jī)的程序是:
Public Const stopX = &H0
Public Const moveX = &H1
Public Const JogPX = &H2
Public Const JogNX = &H3
Public Const PosX = &H4

Public Const stopY = &H10
Public Const moveY = &H11
Public Const JogPY = &H12
Public Const JogNY = &H13
Public Const PosY = &H14

Public Const moveC = &HB0
Public Const moveN = &HB1
Public Const SetPWM = &HC0
Public Const SetIO = &HC1
Public Const SetRERX = &HC2  
Public Const SetRERY = &HC3  
Public Const SetSonX = &HC4
Public Const SetSonY = &HC5
Public Const RstFLG = &HC6
Public Const SetHdrFlg = &HC7

Public Sub RegSetIO(ByVal port As Byte, ByVal status As Byte)
    Dim sbuf(3) As Byte
   
    sbuf(0) = SetIO  
    sbuf(1) = port
    sbuf(2) = status     
    frmMain.MSComm1.Output = sbuf
End Sub

Private Sub cmdHdrGo_Click()  
    fraPass.Visible = False
    If HeadUp = True Then
        HeadUp = False
        RegSetIO 9, 0 'A
        RegSetIO 10, 0 'B
        RegSetIO 11, 0 'C
        RegSetIO 12, 0 'D
    Else
        HeadUp = True
        If chkHeaderA.Value Then RegSetIO 9, 1  'A
        If chkHeaderB.Value Then RegSetIO 10, 1 'B
        If chkHeaderC.Value Then RegSetIO 11, 1 'C
        If chkHeaderD.Value Then RegSetIO 12, 1 'D
    End If
End Sub


下位機(jī)的程序


void Set_IO(unsigned char index,unsigned char sbit)
{         switch(index)
        {       
        case 1:
                GPIO_WriteBit(GPIOA,GPIO_Pin_4,sbit);
                break;
        case 2:
                GPIO_WriteBit(GPIOA,GPIO_Pin_5,sbit);
                break;
        case 3:
                GPIO_WriteBit(GPIOA,GPIO_Pin_6,sbit);
                break;
        case 4:
                   GPIO_WriteBit(GPIOA,GPIO_Pin_7,sbit);
                break;
        case 5:
                GPIO_WriteBit(GPIOB,GPIO_Pin_0,sbit);
                break;
        case 6:
                GPIO_WriteBit(GPIOB,GPIO_Pin_1,sbit);
                break;
        case 7:
                GPIO_WriteBit(GPIOB,GPIO_Pin_6,sbit);
                break;
        case 8:
                   GPIO_WriteBit(GPIOB,GPIO_Pin_7,sbit);
                break;
        case 10:        case 9:
                GPIO_WriteBit(GPIOB,GPIO_Pin_8,sbit);
                break;

                GPIO_WriteBit(GPIOB,GPIO_Pin_9,sbit);
                break;
        case 11:
                GPIO_WriteBit(GPIOB,GPIO_Pin_10,sbit);
                break;
        case 12:
                   GPIO_WriteBit(GPIOB,GPIO_Pin_11,sbit);
                break;
        case 13:
                GPIO_WriteBit(GPIOB,GPIO_Pin_12,sbit);
                break;
        case 14:
                GPIO_WriteBit(GPIOB,GPIO_Pin_13,sbit);
                break;
        case 15:
                GPIO_WriteBit(GPIOB,GPIO_Pin_14,sbit);
                break;
        case 16:
          GPIO_WriteBit(GPIOB,GPIO_Pin_15,sbit);
                break;
        case 17:
          GPIO_WriteBit(GPIOA,GPIO_Pin_8,sbit);
                if(sbit) srdX.error_code &=0xBF;
                break;
        case 18:
                GPIO_WriteBit(GPIOA,GPIO_Pin_9,sbit);
                if(sbit) srdY.error_code &=0xBF;
                break;                               
        }
}


比如我現(xiàn)在VB中發(fā)送到下位機(jī) 執(zhí)行 RegSetIO 9, 1
然后對(duì)應(yīng)下位機(jī)         case 9:
                GPIO_WriteBit(GPIOB,GPIO_Pin_8,sbit);
                break;
得到PB8端口輸出的發(fā)光二極管被點(diǎn)亮
反之執(zhí)行 RegSetIO 9, 0
發(fā)光二極管熄滅

我要是把Public Const SetIO = &HC1改成  Public Const SetIO = &HC9或是其他任意值
就得不到上述的結(jié)果
這個(gè)程序是以前的前輩留下來(lái)
我現(xiàn)在的疑問(wèn)是上位機(jī)發(fā)送一個(gè)指令,在下位機(jī)收到后
是怎么執(zhí)行的(控制發(fā)光二極管的亮或滅)
小弟是新手,剛剛接觸,搞了好多天,望您指教,多謝多謝!著急啊,悶了好久
地板
發(fā)表于 2012-8-26 23:36:44 | 只看該作者
如果你想繼續(xù)用MSComm控件,又要用USB,考慮在STM32上實(shí)現(xiàn)虛擬串口吧。通過(guò)USB虛擬出的串口比物理串口快多了。
地下室
 樓主| 發(fā)表于 2012-8-31 08:12:06 | 只看該作者
mxh0506 發(fā)表于 2012-8-26 23:36
如果你想繼續(xù)用MSComm控件,又要用USB,考慮在STM32上實(shí)現(xiàn)虛擬串口吧。通過(guò)USB虛擬出的串口比物理串口快多了 ...

多謝多謝!問(wèn)題已經(jīng)解決了,悶了好幾天!多謝大家的鼎力相助
6
發(fā)表于 2013-1-11 17:07:41 | 只看該作者
7
發(fā)表于 2013-1-24 08:41:12 | 只看該作者
VB不太好弄底層的東東,只好虛擬通用設(shè)備了,比如串口,磁盤(pán),HID等

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 野花手机免费观看7 | 午夜视频免费观看黄 | 日韩毛片免费线上观看 | 在线天堂新版在线观看 | 日韩免费高清专区 | 黄辣文| 亚洲欧美日韩在线观看播放 | 久久福利资源站免费观看i 久久福利资源网站免费看 久久福利影院 | 亚洲精品网址 | 精品影视网站入口 | 国产成人麻豆tv在线观看 | 久久久精品免费国产四虎 | 啦啦啦www在线观看播放高清 | 男人天堂va | 最新福利网站 | 久久精品综合国产二区 | 精品一久久香蕉国产线看观看下 | 国产导航在线 | 国产黄色影视 | 五月天精品视频在线观看 | 国产三级小视频在线观看 | 亚洲色图男人天堂 | 五月天亚洲综合 | 伊人艹 | 成人羞羞视频在线观看 | 岛国视频在线 | 日产精品卡二卡三卡四卡乱码视频 | 国产真实乱了在线播放 | 日韩欧美亚洲每日更新网 | 91视频一88av| 日本高清在线视频www色下载 | 欧美一区二区激情视频 | 日本网络视频www色高清免费 | 四虎伊人| 精品麻豆 | 成人在线黄色 | 67194国产| 人间正道是沧桑全集免费下载高清 | 国产在线拍| 亚洲日本在线免费观看 | 色丁香在线观看 |