1、GPACON= *(DWORD*)pBufIn;/GPACON SETbreak; case IO_CTL_GPIO_A_DAT_OUTPUT:GPADAT= *(DWORD*)pBufIn;/GPADAT SET (OUTPUT) also for Functional Pin case IO_CTL_GPIO_B_CON:GPBCON= *(DWORD*)pBufIn;/GPBCON SETcase IO_CTL_GPIO_B_DAT_INPUT:*(DWORD*)pBufOut=v_pIOPregs-GPBDAT; /GPBDAT SET (INPUT) also for Functio
2、nal Pin case IO_CTL_GPIO_B_DAT_OUTPUT:GPBDAT= *(DWORD*)pBufIn;/GPBDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_B_UP:GPBUP= *(DWORD*)pBufIn;/GPBUP SETcase IO_CTL_GPIO_C_CON:GPCCON= *(DWORD*)pBufIn;/GPCCON SETcase IO_CTL_GPIO_C_DAT_INPUT:GPCDAT; /GPCDAT SET (INPUT) also for Functional Pin
3、case IO_CTL_GPIO_C_DAT_OUTPUT:GPCDAT= *(DWORD*)pBufIn;/GPCDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_C_UP:GPCUP= *(DWORD*)pBufIn;/GPCUP SET case IO_CTL_GPIO_D_CON:GPDCON= *(DWORD*)pBufIn;/GPDCON SETcase IO_CTL_GPIO_D_DAT_INPUT:GPDDAT; /GPDDAT SET (INPUT) also for Functional Pin case IO
4、_CTL_GPIO_D_DAT_OUTPUT:GPDDAT= *(DWORD*)pBufIn;/GPDDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_D_UP:GPDUP= *(DWORD*)pBufIn;/GPDUP SET case IO_CTL_GPIO_E_CON:GPECON= *(DWORD*)pBufIn;/GPECON SETcase IO_CTL_GPIO_E_DAT_INPUT:GPEDAT; /GPEDAT SET (INPUT) also for Functional Pin case IO_CTL_GP
5、IO_E_DAT_OUTPUT:GPEDAT= *(DWORD*)pBufIn;/GPEDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_E_UP:GPEUP= *(DWORD*)pBufIn;/GPEUP SETcase IO_CTL_GPIO_F_CON:GPFCON= *(DWORD*)pBufIn;/GPFCON SETcase IO_CTL_GPIO_F_DAT_INPUT:GPFDAT; /GPFDAT SET (INPUT) also for Functional Pin case IO_CTL_GPIO_F_DAT
6、_OUTPUT:GPFDAT= *(DWORD*)pBufIn;/GPFDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_F_UP:GPFUP= *(DWORD*)pBufIn;/GPFUP case IO_CTL_GPIO_G_CON: v_pIOPregs-GPGCON= *(DWORD*)pBufIn;/GPGCON SETcase IO_CTL_GPIO_G_DAT_INPUT:GPGDAT; /GPGDAT SET (INPUT) also for Functional Pin case IO_CTL_GPIO_G_DA
7、T_OUTPUT:GPGDAT= *(DWORD*)pBufIn;/GPGDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_G_UP:GPGUP= *(DWORD*)pBufIn;/GPGUP SET case IO_CTL_GPIO_H_CON:GPHCON= *(DWORD*)pBufIn;/GPHCON SETcase IO_CTL_GPIO_H_DAT_INPUT:GPHDAT; /GPHDAT SET (INPUT) also for Functional Pin case IO_CTL_GPIO_H_DAT_OUTPU
8、T:GPHDAT= *(DWORD*)pBufIn;/GPHDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_H_UP:GPHUP= *(DWORD*)pBufIn;/GPHUP SET case IO_CTL_GPIO_J_CON:GPJCON= *(DWORD*)pBufIn;/GPJCON SETcase IO_CTL_GPIO_J_DAT_INPUT:GPJDAT; /GPJDAT SET (INPUT) also for Functional Pin case IO_CTL_GPIO_J_DAT_OUTPUT:GPJDA
9、T= *(DWORD*)pBufIn;/GPJDAT SET (OUTPUT) also for Functional Pincase IO_CTL_GPIO_J_UP:GPJUP= *(DWORD*)pBufIn;/GPJUPdefault:RETAILMSG(0,(TEXT(GPIO_Control:Ioctl code = 0x%xrn), dwCode);return TRUE;测试程序,封装了2个输入输出GPIO函数,调用十分方便:#include #ifdef _DEBUG#define new DEBUG_NEW#endifDWORD RData,BUFCON,BUFOUT,BU
10、FIN;struct GPIO DWORD GPIOCON;DWORD GPIOIN;DWORD GPIOOUT;struct GPIO GPA=gpacon,NULL,gpaout ,GPB=gpbcon,gpbin,gpbout ,GPC=gpccon,gpcin,gpcout ,GPD=gpdcon,gpdin,gpdout ,GPE=gpecon,gpein,gpeout ,GPF=gpfcon,gpfin,gpfout ,GPG=gpgcon,gpgin,gpgout ,GPH=gphcon,gphin,gphout ,GPJ=gpjcon,gpjin,gpjout ;/define and choose GPIO/ CRelay2Dlg 对话框CRelay2Dlg:CRelay2Dlg(CWnd* pParent /*=NULL*/) CDialog(CRelay2Dlg:IDD, pParent)m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CRelay2Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESS
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1