1樓:
看一下stc 15f2k60s資料手冊,是不是什麼暫存器設定的不對。或者是波特率的演算法不對。我記得stc好像有的微控制器一個時鐘週期是兩個機器週期。
或者是6個機器週期,而一般的微控制器都是12個機器週期。這個有一個暫存器可以進行設定,你查一下看是不是這個問題。
t2l=(65536-(fosc/4/baud)); t2h=(65536-(fosc/4/baud))>>8;
去看一下,資料手冊,可能是這裡出了問題。
2樓:匿名使用者
#include "reg52.h"
#include "intrins.h"
#define fosc 11059200l#define baud 9600
sfr auxr=0x8e;
sfr t2h=0xd6;
sfr t2l=0xd7;
sbit p22=p2^2;
bit busy,flag2;
unsigned char eee[8];
unsigned char i,a;
void senddata(unsigned char dat);
void main() } }
void uart() interrupt 4 using 1}void senddata(unsigned char dat)
3樓:匿名使用者
我認為片內時鐘溫漂很大,而且工作在9600那麼高的波特率下出錯那是在所難免。建議外加11.0592m晶振,或者將波特率降到2400就應該沒問題了
4樓:電子電腦維修
把自動識別取消,直接寫 scon = 0x50; //8位可變波特率 就可以了!
5樓:匿名使用者
scon = 0x50; //8位可變波特率
這樣試一下
stc微控制器串列埠通訊為什麼上電後會多發出一串位元組,後面的資料就一切正常了
6樓:匿名使用者
出現這種情況估計是你的微控制器直接連到寫入器上了,由程式設計器直接供電,而微控制器程式啟動階段沒有加延時。寫入器連線到usb口會有一個初始化過程,串列埠有資料輸出,被微控制器誤接收了。
解決方法:
1、微控制器程式啟動階段加1到2秒延時,躲過初始化資料。
2、微控制器串列埠實行佇列接收,只有整個佇列符合特徵才傳送。串列埠助手傳送端按佇列傳送。
3、微控制器單獨供電。
微控制器接收串列埠資料,怎麼用微控制器確定串列埠接收資料的時間間隔?
你通過串列埠助手要接受字串或一組資料需要在微控制器端開闢一個緩衝區,否則可能丟失資料。以下程式是較為通用的串列埠收發例程,開闢一個16位元組的緩衝區,兩個指標,一個存數指標,一個取數指標,兩指標相等,證明沒有新的接收資料。include define uchar unsigned charuchar...
微控制器串列埠,微控制器串列埠作用?
關於串列埠實驗你可以看看這篇文章 手把手教你用增強型51實驗板實現rs232串列埠通訊 電子製作 2006年8月 站長原創,如需引用請註明出處 上一期,我們已經利用增強型51實驗板學會了微控制器控制步進電機轉動的方法,這一期,我們將一起來學習一下微控制器如何與pc機進行通訊,一起來完成一個簡單的rs...
求微控制器串列埠資料分離c程式
define comm led on 0x00 串列埠發過來的led亮的命令 define c0mm led off 0xff 串列埠發過來的led滅的命令 define c0mm none 0x01 串列埠無有效命令 unsigned char led flag unsigned char rec...