0

GSM のメッセージを携帯電話に送信するコードを (Codeblocks を使用して) 書きました。いくつかの AT コマンドが含まれています。問題は、at+cmgf=1 の printf にこのエラーがあることです。私のコードは正しいと思います。UTF または ASCII に問題はありますか?

#include <stdio.h> // standard input / output functions
#include <string.h> // string function definitions
#include <unistd.h> // UNIX standard function definitions
#include <fcntl.h> // File control definitions
#include <errno.h> // Error number definitions
#include <termios.h> // POSIX terminal control definitions


int open_port(void)
 {
int fd; // file description for the serial port

fd = open("/dev/ttyAMA0", O_RDWR | O_NOCTTY | O_NDELAY);

if(fd == -1) // if open is unsucessful
{
    printf("open_port: Unable to open /dev/ttyAMA0. \n");
}
else
{
    fcntl(fd, F_SETFL, 0);
    printf("port is open.\n");
}

return(fd);
 } //open_port

int configure_port(int fd)      // configure the port
{
struct termios port_settings;      // structure to store the port settings in

cfsetispeed(&port_settings, B9600);    // set baud rates
cfsetospeed(&port_settings, B9600);

port_settings.c_cflag &= ~PARENB;    // set no parity, stop bits, data bits
port_settings.c_cflag &= ~CSTOPB;
port_settings.c_cflag &= ~CSIZE;
port_settings.c_cflag |= CS8;

tcsetattr(fd, TCSANOW, &port_settings);    // apply the settings to the port
return(fd);

 }
 void init_gsm()
 {
  printf("at+cmgf=1\r\n");
  printf("at+cmgs=\"60*****\"\r\n");
  printf("Hello\r\n%c",26);  
 }
int main(void)
{
int fd = open_port();
configure_port(fd);
//query_modem(fd);
init_gsm();
return(0);

} //main
4

1 に答える 1

1

浮遊 '\302'の問題は、コードのどこかに通常のスペースではなく非ブレーク スペースが含まれていることです。

ただし、それを修正すると、ここで対処する 2 つの追加の問題が発生します。

于 2013-05-21T22:19:17.853 に答える