1~8位数据(000-111) SCIA的通信控制寄存器.PPT

1~8位数据(000-111) SCIA的通信控制寄存器.PPT

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1~8位数据(000-111) SCIA的通信控制寄存器

5. RS485实际应用举例 * 全双工(Full Duplex) 数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,选择的传送方式称为全双工制。 与RS485相比,差别仅在于RS422为全双工通信。 需要4根电缆线,无机械接口标准。发送和接受需交叉连接。 驱动器和接收器数量主要由接口芯片的驱动能力决定。 * RS485: VA-VB 0.2V 逻辑“1” VA-VB - 0.2V 逻辑“0” 实际差动输出:最小 ±1.5V , 最大±6V RS232采用负逻辑电平: -5V~-15V 规定为逻辑 “1” +5V~+15V 规定为逻辑 “0” 1、近距离连接(15m) 只用3条线(发送线TXD,接收线RXD,信号地线) 2.远距离连接(15m) 1)需用MODEM和专用电话线 2)需用2~9条信号线(在接口与MODEM之间) * HDPLX引脚仅用于RS485/422模式选择。 DTE(Data Terminal Equipment)数据终端 DCE(Data Communications Equipment)数据通信装置 RTS:Request to send (DTE ready) CTS: Clear to send (DCE ready) * 实验中使用SCIB。 通过CPLD芯片来配置通信模式。 * * 本例为查询方式。 * 同样,此时为查询方式。 * 此处,接收中断的功能可补充。 * * 发送采用查询方式,接收可选中断或查询方式。 * 4 编程举例-SCI的初始化 unsigned int * UART_MODE = (unsigned int *) 0x80005; void InitSci(void) { *UART_MODE = 0x04; //RS232,全双工,无速率限制 EALLOW; GpioMuxRegs.GPGMUX.all = 0x0030; // Initialize SCI-B EDIS; ScibRegs.SCICCR.all = 0x07; // one stop bit; parity disabled; idle line mode; 8 bit data ScibRegs.SCICTL1.all = 0x03; // SCI software reset; transmitter and receiver enabled ScibRegs.SCICTL2.all = 0x03; // Enalbe both TxRDY and RxRDY interrupts ScibRegs.SCIHBAUD = 0x00; ScibRegs.SCILBAUD = 0xF3; // Baud rate=150/4/244/8=19.21k ScibRegs.SCICTL1.all = 0x23; // Re-enable the SCI by writting a 1 to SW RESET PieCtrl.PIEIER9.bit.INTx3 = 1; //SCIBRXINT PieCtrl.PIEIER9.bit.INTx4 = 1; //SCIBTXINT } * 发送数据完成 //************************************************************** name: int SciaTx_Ready(void) input: none output: i=1: ready;i=0: busy //************************************************************** int ScibTx_Ready(void) { unsigned int i; if(ScibRegs.SCICTL2.bit.TXRDY == 1) { i = 1; } else { i = 0; } return(i); } * 接收数据准备好 //************************************************************* name: int SciaRx_Ready(void) input: none output: i= 1: new data 0:

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档