原创 1 扩3 的通用异步串口

2008-12-17 13:39 1795 10 10 分类: MCU/ 嵌入式

 


点击看大图



// GM8123 Instructions
#define Contr_data  0xf1       // GM8123 命令字
//*********************************************************


//  此程序应用的环境是 3个从机均以 2400bps 的波特率工作,要求主机对3个从机分别接收数据
 
void InitGM8123 (void)

  GM8123_RST  = 1;
 //1  注意:复位后的帧格式为 11bit,母串口波特率为 4800bps
  TXSTA = 0x64;    // 选择异步方式,HIGH速;9位数据,允许发送;0110 0100
  TXSTAbits.TX9D = 1;  //
  RCSTA = 0xf0;  //0x90; 11110000  // 允许串口工作,接收9位数据; 
  BAUDCON = 0;
  SPBRGH = 0;
  SPBRG = 0x33;   //  4800     // 设置//装入初值,设置主机工作波特率为 4800bps
 //2
step3:
  GM8123_RST  = 0;  //对 GM8125 进行复位操作
  ClrWdt();
  GM8123_RST  = 1; 
  Delay1KTCYx(0xfa);  //复位信号在外部电平拉高后内部还将延时 200ms
  Delay1KTCYx(0xfa);



 //3 写入命令字0XF1
  ReceiveBuff0 = 0; //对command set 初值。
  STADD0 = 0;
  STADD1 = 0;
  GM8123_MS = 0;//write command
 
  TXREG = Contr_data;  //10bit ,子串口2400bps母串口9600bps
  while(TXSTAbits.TRMT == 0);
 
  //3  //读命令字  //验证写入的命令字是否正确,不正确则重新写
 
  GM8123_MS = 1;
  Delay1KTCYx(0xfa);
  if (ReceiveBuff0 != Contr_data)   // 如果数据不对,重写。
     goto step3;
 
  //4    子串口是2400 ,母串口是9600 bts
  GM8123_MS = 0;  // //设置 GM8125 工作在多通道工作模式下
  STADD0 = 1;  //完成命令字的设置之后,必须将 STADD1~0置为非全 0 的值后,设置才生效,此时才能按设置的格式进行数据通讯
  STADD1 = 0;
  TXSTA = 0x24;     // 选择异步方式,HIGH速;8位数据,允许发送;0010 0100
  RCSTA = 0xB0;    //0x90; 10110000  // 允许串口工作,接收8位数据;
  SPBRG = 0x19;  // 设置//装入初值,设置主机工作波特率为 9600bps 
 }


//****************************************************************


//*****************UartOut******uart 输出一个字节*****
void UartOut (unsigned char x)
{
GM8123_MS = 0  ;     //多通道工作模式
switch (UsartFlag)    // 根据串口的接收,选择串口发送
 {
 case 1:
  STADD1 = 0; STADD0 = 1;  //选择子串口 1 发送
  break;
 case 2:
  STADD1 = 1; STADD0 = 0; //选择子串口 2 发送
  break;
 case 3:
  STADD1 = 1; STADD0 = 1; //选择子串口 3 发送
  break;
 
 }
TXREG = x;
while(TXSTAbits.TRMT == 0);


//对母串口发送无效数据
STADD1 = 0; STADD0 = 0; //选择母串口发送
TXREG = 0;
while(TXSTAbits.TRMT == 0);
TXREG = 0;
while(TXSTAbits.TRMT == 0);
TXREG = 0;
while(TXSTAbits.TRMT == 0);


}


pdf

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条