Re: [問題] 請問使用C#寫的RS232程式寫入8051SoC後 …

看板ASM (組合語言)作者 (芒果義式低脂冰淇淋)時間14年前 (2011/05/04 13:18), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
在附上 void UART_Init(void) { SCON = 0x50; /* SCON: mode 1, 8-bit UART */ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */ TH1 = 0xFD; /* TH1: reload value for 9600 baud @ 11.0592MHz */ TR1 = 1; /* TR1: timer 1 run */ EA = 1; ES = 1; } C# serialPort1.BaudRate=9600 serialPort1.DataBits=8 serialPort1.Parity=none serialPort1.StopBits=one ※ 引述《kimo (芒果義式低脂冰淇淋)》之銘言: : 8051 code(SoC用的是STC) : /******************************************************************/ : /* Uart中斷程序 */ : /******************************************************************/ : void UART_SER (void) interrupt 4 //Uart中斷服務程序 : { : unsigned char Temp; //定義臨時變量 : unsigned char i; : if(RI) //判斷是接收中斷產生 : { : RI=0; //標誌位清零 : Temp=SBUF; //讀入緩沖區的值 : new_word[i]=Temp; : i++; : if(i==16) //連續接收16個字符信息 : { : i=0; : SetFlag=1; //接收完成標誌位置1 : } : SBUF=Temp; //把接收到的值再發回電腦端 : } : if(TI) //如果是發送標誌位,清零 : TI=0; : } : C# code : /*寫入按鈕事件*/ : private void btn_write_Click(object sender, EventArgs e) : { : try : { : /*寫入資料*/ : byte[] RSdata = new byte[16] { 0x30, 0x31, 0x32, 0x33, 0x34, : 0x35, 0x36, 0x37, 0x38, 0x39, : 0x41, 0x42, 0x43, 0x44, 0x45, : 0x46 }; : serialPort1.Write(RSdata,0,16); : } : catch (Exception ex) : { : MessageBox.Show(ex.Message, "錯誤訊息", MessageBoxButtons.OK, : MessageBoxIcon.Error); : } : } : /*讀取按鈕事件*/ : private void btn_read_Click(object sender, EventArgs e) : { : /*讀取輸入緩衝區資料*/ : Byte[] RSdata =new Byte[16]; : serialPort1.Read(RSdata,0,16); : string s=""; : for (int i = 0; i < 16; i++) : s += ":0x" + RSdata[i].ToString("X2"); : txt_read.Text = s; : /*顯示目前輸入緩衝區的剩餘位元組數*/ : lbl_inputlen.Text = serialPort1.BytesToRead.ToString(); : } : 執行結果分別如下: : 第1次 : 0xA0:0xB1:0xB2:0xB3:0xB4:0xB5:0xB6:0xB7: : 0xB8:0xB9:0xC1:0xC2:0xC3:0xC4:0xC5:0xC6 : 第2次 : 0xF0:0xB1:0xB2:0xB3:0xB4:0xB5:0xA6:0xB7: : 0xB8:0xB9:0xC1:0xC2:0xC3:0xC4:0xC5:0xC6 : 第3次 : 0xB0:0xB1:0xB2:0xB3:0xB4:0xB5:0xA6:0xB7: : 0xB8:0xB9:0xC1:0xC2:0xC3:0xC4:0xC5:0xC6 : 都非寫入的 : 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, : 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46 : 請問各位高手 有誰知道原因嗎? : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.1.254

05/04 20:05, , 1F
你51的XTAL是不是用到12MHz的啊?
05/04 20:05, 1F

05/05 01:31, , 2F
mmmm KS說的也不無可能哪...症狀也很像 :P
05/05 01:31, 2F
文章代碼(AID): #1DmE6_6C (ASM)
文章代碼(AID): #1DmE6_6C (ASM)