关键代码如下
enum STATUS {UssdStart=1, UssdReply, UssdRetCode0, UssdRetCode1, UssdRetCode2, UssdInteraction, UssdDisp, UssdSend, UssdEnd, UssdTimeout };
int main(int argc, char** argv)
{
char UssdNO[50]={0};
char InteractBuff[50]={0};
char outbuff[1024]={0};
enum STATUS Status = UssdStart;
int fd = open("/dev/ttyS0",O_RDWR | O_NONBLOCK);
if(fd == -1)
{
printf("open ttyS0 error!\n");
}
else
{
SetSpeed(fd, 115200);
if (SetParity(fd,8,1,'N') == FALSE) {
printf("Set Parity Error\n");
}
SetRawMode(fd);
}
WriteToSIMCOM(fd, "ATE0\r");
if(ReadSIMCOMLine(fd, outbuff, 5, 0) == 1)
{
if(strstr(outbuff, "OK"))
{
}
}
else
Status = UssdTimeout;
while(1)
{
switch(Status)
{
case UssdStart:
printf("Please enter the USSD number:\n");
gets(UssdNO);
WriteT
SIM900的USSD测试小程序
最新推荐文章于 2022-08-20 13:02:01 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)