1

我已经编写了通过串口向 pic 发送数据的 java 代码,现在我需要对微控制器进行编程以读取数据,如果它接收到 1,则使 PortD.RD6=1,如果接收到 0,则使 PortD.RD6=0。我已经尝试过这段代码,但我得到了很多错误。这是我的第一个 mikroC 程序,所以我真的不知道如何管理这些错误。

char output[1];
unsigned short i;
 void main(){
 TRISD = 0x01;
 i = 0;
UART1_Init(9600);
while (1) {
if (UART1_Data_Ready()==1) {
i = UART1_Read(); // read the received data
ByteToStr(i, output);
if (output = "1" ) // this is where I get the error 
{PortD.RD6=1;}
else {  PortD.RD6=0;}

}}}
4

1 回答 1

2

我可以发现的一个错误是ByteToStr返回三个字符,因此它可能会覆盖其他内存区域并给出未定义的结果。您不需要进行该转换,您只需将一个字节读入 achar并直接对其进行比较,如下所示:

void main()
{
    char c;

    TRISD = 0x01;
    UART1_Init(9600);
    while (1) {
        if (UART1_Data_Ready()) {
            c = UART1_Read();
            if (c == '1')
                PortD.RD6=1;
            else 
                PortD.RD6=0;
        }
    }
}
于 2014-05-28T02:46:27.077 回答