完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void scib_fifo_init()
{ ScibRegs.SCICCR.all =0x000F; // 1 stop bit, No loopback // No parity,8 char bits, // async mode, idle-line protocol ScibRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK, // Disable RX ERR, SLEEP, TXWAKE ScibRegs.SCICTL2.bit.TXINTENA =1; ScibRegs.SCICTL2.bit.RXBKINTENA =1; ScibRegs.SCIHBAUD =0x0000; ScibRegs.SCILBAUD =0x006c; //28.8Kbps ScibRegs.SCICCR.bit.LOOPBKENA =0; // Enable loop back ScibRegs.SCIFFTX.all=0xC021; ScibRegs.SCIFFRX.all=0x4021; ScibRegs.SCIFFCT.all=0x00; ScibRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset ScibRegs.SCIFFTX.bit.TXFIFOXRESET=1; ScibRegs.SCIFFRX.bit.RXFIFORESET=1; } interrupt void scibTxFifoIsr(void) { ScibRegs.SCIFFTX.bit.TXFFINTCLR=1; // Clear Interrupt flag ieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ACK } //====================================== //RS485发送函数 //====================================== void scib_xmit(int TargetAddr,int DataNum,int *TransData) { Uint16 i; TX_EN; for (i=0;i<30;i++) { ; } ScibRegs.SCICTL1.bit.TXWAKE=1; //发送模式唤醒 ScibRegs.SCITXBUF=TargetAddr; //发送地址 while (ScibRegs.SCICTL2.bit.TXEMPTY!=1); //等待发送完毕, 清除发送中断标志 ScibRegs.SCICTL1.bit.TXWAKE=0; //关闭唤醒 ScibRegs.SCICCR.bit.ADDRIDLE_MODE =0; // 空闲地址为协议 for (i=0;i ScibRegs.SCITXBUF=*TransData; //发送数据 while (ScibRegs.SCICTL2.bit.TXEMPTY!=1); //等待发送完毕, 清除发送中断标志 TransData++; } TX_EN; // Load output latch ScibRegs.SCICCR.bit.ADDRIDLE_MODE =1; // 选择地址为协议 for (i=0;i<30;i++) { ; } } 我的程序能发送出去数据,但是地址发送不出去,从机响应不了,这个程序有啥问题了啊?? |
|
相关推荐
2个回答
|
|
帮顶。。。。
|
|
|
|
发送的都是字节char,你的地址是int,所以发送的是你的地址的低八位吧,跟你想发送的不对吧
|
|
|
|
只有小组成员才能发言,加入小组>>
2872 浏览 3 评论
27639 浏览 2 评论
3444 浏览 2 评论
3967 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2309 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 02:15 , Processed in 0.616171 second(s), Total 85, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号