C UART1_写入(13)功能不正常

C UART1_写入(13)功能不正常,c,microcontroller,mikroc,C,Microcontroller,Mikroc,我正在使用PIC16F688从模拟通道2读取数据,平均压力传感器的值,然后使用ASCII字符方法将4个字节转换为数字。 代码非常简单。在将结果发送到UART1_Write(temp[I])之后,我不需要任何延迟 我的问题是,UART 13在回车时不能正常工作。 终端的输出如下所示: 000000000 0000 0000 000000000 它应该每次都发送0000,并且取决于我在传感器上的压力,从0000到1023的值 char temp[5]; unsigned int adc_value

我正在使用PIC16F688从模拟通道2读取数据,平均压力传感器的值,然后使用ASCII字符方法将4个字节转换为数字。 代码非常简单。在将结果发送到
UART1_Write(temp[I])之后,我不需要任何延迟
我的问题是,UART 13在回车时不能正常工作。
终端的输出如下所示:

000000000
0000
0000
000000000
它应该每次都发送
0000
,并且取决于我在传感器上的压力,从
0000
1023
的值

char temp[5];
unsigned int adc_value;
char uart_rd;
int i;
unsigned int d[10]={0};
int average = 0;
int counter =0;
 void main() { 
  temp[0]='0';
  temp[1]='0';
  temp[2]='0';
  temp[3]='0';
  temp[4]='\r';


   OSCCON     = 0x77;        //8MHz

   ANSEL = 0b00000100;      
   CMCON0 = 0X07;  //
   TRISA = 0b00001100;

   UART1_Init(9600);               // Initialize UART module at 9600 bps
   Delay_ms(100);                  // Wait for UART module to stabilize


  while (1) {
          average=0;
           for(i=0;i<10;i++){
              average+= ADC_Read(2);
           }
             average/=10;
             temp[0] = average/1000+48;
             temp[1] = (average/100)%10+48;
             temp[2] = (average/10)%10+48;
              temp[3] = average%10+48;
               for (i=0;i<5; i++)
                {
                 UART1_Write(temp[i]);


                }
                 UART1_Write(13); // back slash

             }

           }
chartemp[5];
无符号整数adc_值;
查乌拉尔路;
int i;
无符号整数d[10]={0};
整数平均=0;
int计数器=0;
void main(){
温度[0]=“0”;
温度[1]=“0”;
温度[2]=“0”;
温度[3]=“0”;
温度[4]='\r';
OSCCON=0x77;//8MHz
ANSEL=0B000000100;
CMCON0=0X07//
TRISA=0b00001100;
UART1_Init(9600);//以9600 bps的速度初始化UART模块
延迟_ms(100);//等待UART模块稳定
而(1){
平均值=0;

对于(i=0;i我希望temp[4]的计算结果为0x0D(CR),因此“while”循环的每次迭代都会写入四位数字,后跟两个CR,没有任何换行符。尝试在“for”循环之后将0x0A写入UART,而不是13

如果您不清楚CR和LF之间的区别,这个答案很好地解释了这一点:

你在问我们什么?我们没有硬件,没有代码,没有编译器,没有链接器,没有环境,没有调试器,没有记录器,也不知道你是否有软件问题,硬件问题或两者都有。这就是我的代码有问题。有人能帮我找出为什么UART1\u write没有将每个四个字节都放在一边,我的意思是像反斜杠一样\n这很有帮助。