<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于新唐M0的M0516LAN的SIM900A的驅動(dòng)測試

基于新唐M0的M0516LAN的SIM900A的驅動(dòng)測試

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò ) 收藏
基于新唐M0的M0516LAN的SIM900A的驅動(dòng)測試

元旦放假,急于趕一個(gè)小項目,做了一個(gè)M0516LAN驅動(dòng)SIM900A的測試。第一次用SIM900A,其中遇到幾個(gè)小問(wèn)題,調了好久,也問(wèn)過(guò)群里用過(guò)SIM900A的幾位朋友才調通,在此感謝。最弱智的問(wèn)題是我把NRESET接到了PWM3上,然后又啟動(dòng)了PWM3,雖然后面把P43置成IO輸出卻不成功,然后大半晚上就那么悲劇掉了。新唐的庫是置成了復用功能再想置回IO,需要先DrvGPIO_InitFunction(E_FUNC_GPIO);才能配置IO功能的。我后來(lái)還是不啟動(dòng)PWM就通過(guò)了開(kāi)機過(guò)程。只要SIM900A開(kāi)機了,NETLIGHT的LED就會(huì )閃爍,不管有沒(méi)有SIM卡。另外,所有SIM900A的AT命令都是以“”結束的。

本文引用地址:http://dyxdggzs.com/article/201611/323195.htm

“sim900a.c ”文件源碼如下:

#include
#include

#include "DriverDrvUART.h"
#include "DriverDrvGPIO.h"
#include "DriverDrvSYS.h"

#define PWRKEY E_PORT2, E_PIN1
#define NRESETE_PORT4, E_PIN3
#define STATUS E_PORT2, E_PIN3
#define RIE_PORT3, E_PIN2
#define CTSE_PORT0, E_PIN0
/*
_________________________________________________
|M0516LANSIM900A|
||
|P21PWRKEY---->PWRKEY|
|P43NRESET---->NRESET|
|P23STATUS<----STATUS|
|P32RI<----RI|
|P00CTS1<----CTS|
|P13TXD1---->RXD|
|P12RXD1<----TXD|
|_______________________________________________|
*/
int UART1_init(void)
{
STR_UART_T sParam;

/* Set UART1 Pin */
DrvGPIO_InitFunction(E_FUNC_UART1);
//outpw(&SYS->P1_MFP, (inpw(&SYS->P1_MFP) | (0x3<<10)) & ~(0x3<<2));
//outpw(&SYS->P0_MFP, (inpw(&SYS->P0_MFP) | (0x3<<8)) & ~(0x3<<0));

/* Select UART1 Clock Source From 12Mhz*/
DrvSYS_SelectIPClockSource(E_SYS_UART_CLKSRC,0);

/* UART1 Setting */
sParam.u32BaudRate = 9600;
sParam.u8cDataBits = DRVUART_DATABITS_8;
sParam.u8cStopBits = DRVUART_STOPBITS_1;
sParam.u8cParity = DRVUART_PARITY_NONE;
sParam.u8cRxTriggerLevel= DRVUART_FIFO_1BYTES;

if(DrvUART_Open(UART_PORT1,&sParam) != E_SUCCESS)
{
printf("UART1 open failed");
return FALSE;
}
/* Enable Interrupt and install the call back function */
//DrvUART_EnableInt(UART_PORT1, (DRVUART_RLSINT | DRVUART_RDAINT),UART1_INT_HANDLE);

/* Disable Interrupt */
//DrvUART_DisableInt(UART_PORT1,DRVUART_RLSINT | DRVUART_THREINT | DRVUART_RDAINT);

return TRUE;
}

int SIM900A_Open(void)
{
int dly;

DrvGPIO_ClrBit(PWRKEY);
for(dly=0;dly<2000;dly++)DrvSYS_Delay(1000); //delay 1S
DrvGPIO_SetBit(PWRKEY);

for(dly=0;dly<3000;dly++)DrvSYS_Delay(1000); //delay 3S
if(DrvGPIO_GetBit(STATUS))
{
printf("SIM900A Open Success!!!");
return 1;
}
else
{
printf("SIM900A Open Failure!!!");
return 0;
}
}

int SIM900A_Close(void)
{
int dly;

DrvGPIO_ClrBit(PWRKEY);
for(dly=0;dly<6000;dly++)DrvSYS_Delay(1000); //delay 1S-5S
DrvGPIO_SetBit(PWRKEY);

for(dly=0;dly<4000;dly++)DrvSYS_Delay(1000); //delay 2S

if(DrvGPIO_GetBit(STATUS))
{
printf("SIM900A Close Failure!!!");
return 1;
}
else
{
printf("SIM900A Close Success!!!");
return 0;
}
}

int SIM900A_Reset(void)
{
int dly;

DrvGPIO_ClrBit(NRESET);
DrvSYS_Delay(100); //delay 20uS-50uS
DrvGPIO_SetBit(NRESET);

for(dly=0;dly<2000;dly++)DrvSYS_Delay(1000); //delay 2S
if(DrvGPIO_GetBit(STATUS)==1)
return 1;
else
return 0;
}
int SIM900A_init(void)
{
int ret =0;

DrvGPIO_Open(STATUS, E_IO_INPUT);
DrvGPIO_Open(RI, E_IO_INPUT);
DrvGPIO_Open(CTS, E_IO_INPUT);
DrvGPIO_Open(PWRKEY, E_IO_OUTPUT);
DrvGPIO_Open(NRESET, E_IO_OUTPUT);

DrvGPIO_SetBit(PWRKEY);
DrvGPIO_SetBit(NRESET);

ret = SIM900A_Open();
UART1_init();

return ret;
}


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>