欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2784|回復: 3
收起左側

STC89C5單片機串口發送數據時我使用單引號發送正確,雙引號提示我指向的不是指針的...

[復制鏈接]
ID:636538 發表于 2020-6-4 13:39 | 顯示全部樓層 |閱讀模式
#include <reg51.h>

void uart_init(void);
void uart_send_byte(unsigned char m);
void delay500ms(void);
void main()
{
  uart_init();
  while(1)
  {
    uart_send_byte("x");
      delay500ms();
  
  }
}

void uart_init(void)    //第一步單片機初始化
{
  SCON=0x50;             //通信方式一
  PCON=0x00;             //波特率加倍

  TMOD=0X20;             //方式2
  TH1=243;
  TL1=243;             //波特率4800

  TR1=1;
  ES=1;
  EA=1;
}
void uart_send_byte(unsigned char m)
{
   SBUF=m;

   while(!TI);

   TI=0;
}


void delay500ms(void)   //誤差 0us
{
    unsigned char a,b,c;
    for(c=205;c>0;c--)
        for(b=116;b>0;b--)
            for(a=9;a>0;a--);
}
就是 uart_send_byte("x");但改為uart_send_byte('x');沒有問題,這個是什么原因
回復

使用道具 舉報

ID:267719 發表于 2020-6-4 14:25 | 顯示全部樓層
void uart_send_byte(unsigned char m)
調用你申明的這個函數
如果是單引號uart_send_byte('x');
等同于uart_send_byte(0x78); //x的ASCII碼是0x78   ‘x'這時是字符,不是字符串。
如果是雙引號,表示字符串。字符串是用指針表示起始位置的。不符合你申明的unsigned char,所以類型不正確。

unsigned char str[]="xyz";
uart_send_byte(*str);
uart_send_byte(*(str+1));
這是可以的.

評分

參與人數 1黑幣 +12 收起 理由
SKYLAR123 + 12 很給力!

查看全部評分

回復

使用道具 舉報

ID:224329 發表于 2020-6-4 14:29 | 顯示全部樓層
雙引號引起來的是字符串,是char*類型。單引號引起來的是字符,是char類型。

評分

參與人數 1黑幣 +5 收起 理由
SKYLAR123 + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:648281 發表于 2020-6-4 14:41 | 顯示全部樓層
雙引號引用的是字符串,
單引號引用的是一個字符

評分

參與人數 1黑幣 +5 收起 理由
SKYLAR123 + 5 贊一個!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表