C语言中十六进制码的Uart通信

C语言中十六进制码的Uart通信,c,hex,microcontroller,uart,C,Hex,Microcontroller,Uart,我尝试通过uart和十六进制代码与嗅觉传感器通信,但它不工作,传感器不会对制造商给出的命令做出反应 我的write函数和uint\u 8数组是否有问题 //declaration of the hex array uint8_t START_USM[7]; START_USM[0]=0x01; START_USM[1]=0x00; START_USM[2]=0x03; START_USM[3]=0x31; START_USM[4]=0x00;

我尝试通过uart和十六进制代码与嗅觉传感器通信,但它不工作,传感器不会对制造商给出的命令做出反应

我的write函数和
uint\u 8
数组是否有问题

//declaration of the hex array

uint8_t START_USM[7];

    START_USM[0]=0x01;
    START_USM[1]=0x00;
    START_USM[2]=0x03;
    START_USM[3]=0x31;
    START_USM[4]=0x00;
    START_USM[5]=0x00;
    START_USM[6]=0x00;

// function for transmitting data

int commmandWrite2(int fileDescriptor, uint8_t *START_USM){

    int i=0;
    for(; i< COM_LEN; i++){

        int n = write(fileDescriptor,&START_USM[i],1);
        tcdrain(fileDescriptor);

    }
}
//十六进制数组的声明
uint8启动USM[7];
START_USM[0]=0x01;
START_USM[1]=0x00;
START_USM[2]=0x03;
START_USM[3]=0x31;
START_USM[4]=0x00;
START_USM[5]=0x00;
START_USM[6]=0x00;
//传输数据的功能
int COMMMANDRITE2(int文件描述符,uint8\u t*START\u USM){
int i=0;
对于(;i
您必须包含您的文档。
写入功能是什么?它是您编写的函数,还是由任何人提供的函数?请具体说明。在任何一种情况下,都要公开
写入
函数的文档。您是否对其进行了调试并验证了提供给写入函数的所有数据是否正确?您能否假设write函数使用正确且功能正常?你看到总线上使用示波器或通过计算机串行端口的实际通信了吗?@MichaelWalz签名(以及tcdrain(很可能来自)也被使用的事实)强烈地表明了这一点。我证明了与RealTerm的连接,它就在那里工作了。整个START_USM是传感器的命令。我想我需要循环来发送整个命令。
int commmandWrite2(int fileDescriptor, uint8_t *START_USM){

    int i=0;
    for(; i< COM_LEN; i++){

        int n = write(fileDescriptor,&START_USM[i],sizeof(uint8_t ));

    }
    tcdrain(fileDescriptor);
}
int commmandWrite2(int fileDescriptor, uint8_t *START_USM){
       int n = write(fileDescriptor,START_USM,sizeof(uint8_t )*COM_LEN);
        tcdrain(fileDescriptor);
}