Re: [問題] 請問使用C#寫的RS232程式寫入8051SoC後 …
在附上
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
05/04 20:05, 1F
→
05/05 01:31, , 2F
05/05 01:31, 2F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章