c++ 编译错误”错误:程序代码::Blocks中的“\302”

y4ekin9u  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(238)

我写了这段代码(使用Code::Blocks IDE),我想在其中发送一条GSM消息到我的移动的。它包括一些AT命令。
问题是,我在使用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
lc8prwob

lc8prwob1#

stray '\302'的问题是代码中包含了一个非中断空格,而不是一个正常的空格。
然而,修复它,我看到两个额外的问题,我解决here

相关问题