作者kimo (芒果义式低脂冰淇淋)
看板ASM
标题Re: [问题] 请问使用C#写的RS232程式写入8051SoC後 …
时间Wed May 4 13:18:52 2011
在附上
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
1F:→ ksmrt0123:你51的XTAL是不是用到12MHz的啊? 05/04 20:05
2F:→ WolfLord:mmmm KS说的也不无可能哪...症状也很像 :P 05/05 01:31