A. 51單片機串口連接到電腦上計算機無法顯示com埠如何解決(51單片機接收不到串口數據)
1. 51單片機接收不到串口數據
燈亮,證明你的線可以供電, usb有四根線。 usb轉串口線不能保證不壞, 驅動不知道能不能再win8用, 目前兩種可能,驅動問題,還有就是線壞了。沒有了
2. 串口檢測不到51單片機
電腦板載的串口不用裝驅動,打開設備管理器看看裡面有沒有串口,有的話看看串口號是多少,用對應的串口號進行下載就可以了,如果設備管理器中沒有串口,進入BIOS設置裡面,把串口使能就可以了。
3. 51單片機串口不識別
你有沒有使用usb轉串口工具??有的話應該不會有亂碼。
4. 單片機串口無法發送數據
1:先去下一個通用的串口調試軟體代替你的vb程序,用你原來單片機的程序給計算機發數據,這樣如果串口調試軟體接收到的數據是正確,說明你的vb程序問題。
2:如果上述方法接收的還是錯誤數據,則建議把單片機串口工作方式改成方式三,波特率和其他的不用變。再然串口調試軟體接收數據看看。另外:「PCON=0x00;//開總中斷,開串口中斷」PCON不是中斷控制器,下面那句才是。開中斷。
5. 51單片機串口打開失敗
IE = 0x90;把裡面的上面那句去掉,就行了。把ES=1,再來一個IE = 0x90;實際上ES=0了
6. 51單片機串口接收數據的處理程序
3.比如讀取內存地址0x22中的數據 C語言中對於內存的訪問是基於指針的,這個毋庸置疑,具體操如下 unsigned int *p= (unsigned int*)0x22 ;//定義指針,並且使指針指向了0x22這個 內存地址; 那麼*p就是最終你要讀取的數據了。4.至於如何通過串口顯示到電腦我就不多說了(這不是難點),數據你都知道了,寫到串口 緩沖區,在串口調試助手下就可以看到。5.雖然沒有貼出具體代碼,但這裡面的思想可以讓你解決更多問題。
7. 51單片機串口不夠
串口通訊理想距離在兩米以內,太長的話就容易出現誤碼,延長串口通訊的措施就是採用RS485規范了。
可以達到1公里以上。
8. 51單片機串口中斷接收字元串
使用超時中斷,字元串按一個個位元組發送下去,每個位元組發送間隙比較短。如果這個間隙超過一定得時間就認為這一串字元串發送完了。用這個方法可以接受不同長度的字元串
9. 51單片機串口發不出去
51單片機一次只能接收1個位元組數據(8位),若要接收兩個位元組,串口工具應該分成兩位元組發送。比如先發送高位元組,再發送低位元組。對於 100H,按十六進制發送 01 00,單片機收到第一位元組數據保存起來,收到第二位元組後將兩個8位數合並成16位數。
10. 51單片機串口usb電腦不顯示
單片機接入後看設備管理器中的埠,裡面有說的com幾。
B. STC單片機 串口通信 奇偶校驗
1、51單片機SCON=0xDA,工作在方式3.(方式2也可以)
串口 1 模式 3:
波特率是可變的,其它和模式2 相同
11 位數據通過TxD/P3.1 發送,通過RxD/P3.0 接收。一幀數據包含一個起始位(0),8 個數據位(低位在
先),一個可編程的第9 位,和一個停止位(1)。發送時,第9 位數據位來自特殊功能寄存器SCON 的
TB8 位.接收時,第9 位進入特殊功能寄存器SCON 的RB8 位。
SMOD
串口1波特率在模式3 = ( 2 / 32 ) x BRT獨立波特率發生器的溢出率
當SMOD = 0時,串口1波特率 = BRT 獨立波特率發生器的溢出率 / 32,
當SMOD = 1時,串口1波特率 = BRT 獨立波特率發生器的溢出率 / 16,
BRT獨立波特率發生器的溢出率 = Fosc/12/( 256 - BRT ),當BRTx12 = 0時,
BRT獨立波特率發生器的溢出率 = Fosc / ( 256 - BRT ),當BRTx12 = 1時
TB8:發送時校驗位,可以奇校驗或偶校驗(直接置0或1),然後再發送。
RB8:接收時校驗位,判斷接數據是否正確。
2、程序
/*****************************************
*串口1中斷
*****************************************/
void RXD_Int_Service() interrupt 4
{
uint8 ch;
if(RI)
{
RI=0;
Usart1.RxdDly=6; //超過0.3S清空計數
Usart1.RxdBuf[Usart1.RxdCnt]=ch;
Usart1.RxdCnt++;
if(Usart1.RxdCnt>=10)
{
Usart1.RxdTrue=1; //接收正確。
Usart1.RxdNum=Usart1.RxdCnt;
Usart1.RxdCnt=0;
}
}
if(TI)//防止發送中斷
{
TI=0;
}
}
void Timer0_InSevice() interrupt 1
{
TH0=0xdc; //定義50ms 正常值0xfe 0x0c ,修正值:0xfe 0x16;
TL0=0x00; //11.0592MHz晶振
if(Usart1.RxdDly)
{
Usart1.RxdDly--; //0.3S沒有接收到數據,清0計數。
if(Usart1.RxdDly==0)
{
Usart1.RxdCnt =0; //記數清0.
}
}
}
C. 怎樣檢查單片機與電腦串口連接正常
可以通過我的電腦——屬性——設備管理器——埠(COM)——USB SERIAL
如果能再埠裡面看到USB SERIAL,就說明串口與電腦連接正常。
具體如下:
1.
如果串口連接了,缺看不到,可以這樣:
下載驅動,安裝好驅動程序,重新連接一下電腦。(安裝驅動的時候不能拔除串口連接)(要選擇正確的版本,有的驅動是XP的,有的是WIN7等)。
換一條串口線。
一般這樣就行了(圖例用的是STC12C5A60S2的USB轉串口的,一般串口也差不多)。