CAN 发送程序
<p>和刚才贴哪个是配和用的,上电只发送一次,复位再发用于测试你的系统是否正常(两个程序都上机用过请放心使用若收不到的话建议你好好检查一下你的硬件!)</p><p>//CAN bus 发送程序上电单次发送------无中生有<br/>//////QQ:498575921<br/># include<reg51.h><br/># include<absacc.h><br/># define uchar unsigned char<br/># define uint unsigned int<br/># define CR XBYTE[0X0000]<br/># define CMR XBYTE[0X0001]<br/># define SR XBYTE[0X0002]<br/># define CDR XBYTE[0X001F]<br/># define ACR XBYTE[0X0004]<br/># define AMR XBYTE[0X0005]<br/># define BTR0 XBYTE[0X0006]<br/># define BTR1 XBYTE[0X0007]<br/># define OCR XBYTE[0X0008]<br/># define Test XBYTE[0X0009]<br/># define TxBufID1 XBYTE[0X000a]<br/># define TxBufID2 XBYTE[0X000b]<br/># define TxBufDat1 XBYTE[0X000c]<br/># define TxBufDat2 XBYTE[0X000d]<br/># define TxBufDat3 XBYTE[0X000e]<br/># define TxBufDat4 XBYTE[0X000f]<br/># define TxBufDat5 XBYTE[0X0010]<br/># define TxBufDat6 XBYTE[0X0011]<br/># define TxBufDat7 XBYTE[0X0012]<br/># define TxBufDat8 XBYTE[0X0013]</p><p>void INITCAN(){<br/>while (Test == 0xaa)<br/>{<br/> Test =0xaa;<br/> }</p><p> while((CR&0x01) != 0x01)<br/> {<br/> CR = 0x03;//进入复位模式<br/> }<br/> while(ACR!=0xa1)<br/> {<br/> ACR = 0xa1;</p><p> }</p><p> while(AMR!=0x00)<br/> {<br/> AMR = 0x00;<br/> }</p><p> while(BTR0!=0x01)<br/> {<br/> BTR0 = 0x01;<br/> }</p><p> while(BTR1!=0x1c)<br/> {<br/> BTR1 = 0x1c;//250K的BPS,16M的晶振<br/> }</p><p> while(OCR!=0x1a)<br/> {<br/> OCR = 0x1a;<br/> }<br/> while(CDR!=0x48)<br/> {<br/> CDR = 0x48;//Basic CAN模式<br/> }</p><p> while(0x00!=(CR&0x01))<br/> {<br/> CR = 0x06; //退出复位模式;<br/> }<br/> }</p><p>void main( ){<br/> uchar Temp;<br/> uint i;<br/> TMOD=0x20;<br/> TL1=0xfd;TH1=0xfd;<br/> SCON=0xd8;PCON=0x00;<br/> TR1=1;<br/> for(i=0;i<0xfff0;i++);<br/> INITCAN();<br/> Temp = SR;<br/> SBUF=Temp;<br/> while( TI==0);<br/> TI=0;<br/> do<br/> {<br/> }while((SR&0X10)==0X10);<br/> do<br/> {<br/> }while((SR&0x08)!=0x08);</p><p> do<br/> {<br/> }while((SR&0x04)!=0x04);</p><p> Temp = SR;<br/> SBUF=Temp;<br/> while( TI==0);<br/> TI=0;</p><p> TxBufID1 = 0x19;<br/> TxBufID2 = 0x08;<br/> TxBufDat1 = 0x55;<br/> TxBufDat2 = 0x46;<br/> TxBufDat3 = 0x55;<br/> TxBufDat4 = 0x64;<br/> TxBufDat5 = 0x73;<br/> TxBufDat6 = 0x82;<br/> TxBufDat7 = 0x91;<br/> TxBufDat8 = 0xa0;<br/> Temp = SR;<br/> SBUF=Temp;<br/> while( TI==0);<br/> TI=0;<br/> CMR = 0x01;<br/> Temp = SR;<br/> SBUF=Temp;<br/> while( TI==0);<br/> TI=0;<br/> }</p> <p>顶</p> <p>[img]http://www.wanlubao.com/pic/g/D6725_14.gif[/img]</p><p>顶好定西,不错,收藏了</p><p></p><p></p><p></p><p><br/> <a>\\\|///</a><br/> \\ - - //<br/> ( @ @ )<br/>┏━━━━━━━━oOOo-(_)-oOOo━┓<br/>┃网海茫茫,认识你是我的福份; ┃<br/>┃网语缠绵,那是我们注定的缘份。 ┃<br/>┃ Oooo ┃<br/>┗━━━━━━━━ oooO━-( )━┛<br/> ( ) ) /<br/> \ ( (_/<br/> \_)</p><p><br/>『不可能』只存在於蠢人的字典里。 <br/>[url=http://www.cnth.com/pages/Server.asp?Pid=2]英语翻译[/url]<br/></p>页:
[1]