欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
請問大神,單片機如何輸出P0/P1/P2口狀態數據到串口?
[打印本頁]
作者:
mxdkey
時間:
2022-7-5 13:32
標題:
請問大神,單片機如何輸出P0/P1/P2口狀態數據到串口?
單片機小白一個,目前遇到一個疑問如下:
例如P2=0xFF;想通過串口輸出P2的這個十六進制值,請問如何實現?(P2口已使用上拉電阻,默認高電平)
代碼示例:
void main()
{
P2=0xff;
dat0=P2;
EA=1;
Init_USART();
while(1)
{
PutString(dat0);
Delay(1000);
}
}
以上示例報錯:main.c(25): error C214: illegal pointer conversion //PutString(dat0); 這一行
PutString為串口通信協議函數
//串口發送函數
void PutString(unsigned char *TXStr)
{
ES=0;
while(*TXStr!=0)
{
SBUF=*TXStr;
while(TI==0);
TI=0;
TXStr++;
}
ES=1;
}
實測發送文本數據,例如
PutString("Hallo!");
可以通過;煩請各位大神答疑!感謝!
作者:
Hephaestus
時間:
2022-7-5 16:55
PutString(&dat0);
作者:
lkc8210
時間:
2022-7-5 17:42
while(1)
{
SBUF = P2;
Delay(1000);
}
復制代碼
作者:
bioger
時間:
2022-7-5 18:07
你這不是單片機的問題 這是C語言的問題,PutString的輸入變量的函數指針,您給的變量值 這肯定是要操作的。好好看看C語言的書籍吧
作者:
wulin
時間:
2022-7-6 16:32
#include <reg51.H>
#define uint unsigned int
#define uchar unsigned char
uchar dat0[3];
void UartInit(void) //9600bps@11.0592MHz
{
SCON = 0x50; //8位數據,可變波特率
TMOD= 0x20; //設置定時器模式
TL1 = 0xFD; //設置定時初始值
TH1 = 0xFD; //設置定時重載值
ET1 = 0; //禁止定時器中斷
TR1 = 1; //定時器1開始計時
}
//串口發送函數
void PutString(unsigned char *TXStr)
{
while(*TXStr!=0)
{
SBUF=*TXStr;
while(TI==0);
TI=0;
TXStr++;
}
}
void Delay(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
UartInit();
while(1)
{
dat0[0]=P0;
dat0[1]=P1;
dat0[2]=P2;
PutString(dat0);
Delay(1000);
}
}
作者:
lyonkon
時間:
2022-7-10 09:46
sbuf = p2;
作者:
laowang123222
時間:
2022-7-11 01:39
SBUF = P2;
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1