完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,我有两个等效的原板设置有以下组件:dsPIC33EP512MC502(有线,以便它工作,因为运行了一些LED闪烁测试和一切似乎很好)8MHz外部晶体振荡器连接到dsPIC33EP512MC502德州仪器SN65HVD232Q 3.3VCAN收发机CAN收发器连接在一起(Chanyh & Gt;Chanyh,Chanl & Gt;Chanl),大约30厘米的绞合线。一个dsPIC充当发送器和侦听器,另一个则充当侦听器。我使用MPLAB-X 4.05、XC16编译器和PICkit3编程。我试图使CE427 ECAN示例(http://ww1.microhip.com/...27_ecan_cross..zip)工作。我使用了src目录的dspic33ep256gp506子目录中的main.c和ecan1_config.c文件。我对项目所做的更改是:将ECAN TX和RX引脚位置分别用PPS更改为RP38和RP37。utton,这样现在我在发射机一侧每1000ms发送一条消息,接收机不发送任何消息,只监听。在接收机的_C1中断功能中添加了一个信号LED,这样我就知道我至少得到了一个中断。问题是发射机似乎不能发送正确的消息,因为C1Tr01CONtiTES.TXRQQ0位从未复位。我连接示波器到发射机的TX引脚和接收器的RX引脚,我得到一个信号(看起来像方波,但我不能告诉任何其他东西。这是一个便宜的示波器),所以正在发生一些事情,但是接收器的信令引导永远不会闪烁,所以ECAN中断例程没有执行。金属的
|
|
相关推荐
5个回答
|
|
|
我可能会帮助PIC,但是我不想在这个充满亚人类的平台上寻求帮助。给我写一个PM。
|
|
|
|
|
|
嗨,也许这可以帮助:HTTP://www. McCHIP.COM/FUMMS/M1023.300
|
|
|
|
|
|
谢谢你的快速回复。DarioG:我试着给你发一个PM,但是上面说你的收件箱已经满了。RISC:谢谢,但是那个例子使用了2个ECAN模块,dsPIC33EP512MC502只有一个ECAN模块,DMA是不同的。例如,当用“space(dma)”声明ecan1msgBuf缓冲区时,编译器抱怨dsPIC33EP512MC502不支持DPSRAM(链接错误:使用的设备不支持DPSRAM)。
|
|
|
|
|
|
好的,所以绝对需要添加120欧姆结束电阻到SN65 HVD23 2Q收发器芯片!这样就解决了从发射机到监听器的通信问题。现在我正确地得到了DMA缓冲区传输信号,但是发送器发送的每条消息都是:Ecan1WriteTxMsgBufId(1,0x1FFEFFFF,1,0);Ecan1WriteTxMsgBufData(1,8,0x2222,0x2222,0x2222);接收器从来没有得到数据,所有的寄存器都是0x0000!中断例程来自CE427示例:void_u.uuu.u((中断,no_auto_psv(中断,no_auto_自动_psv)_C1中断(void)C1中断(void)_C1中断(void(C1INTTTFbits.ERRIF.C1INTFbits.ERRIF){(C1ININTTTTTTTF比特.C1INTTTTF比特.C1INTTTTTTTTTTTTTTTT比特)if{C1INTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTFbits.TBIF){C1INTFbits.如果(C1INTFbits.RBIF){{0}}如果(C1INTTFbits.RBIF){如果(C1RXXFUL1bits.RXFUL1==1){C1RRXFUL1XBIF=0; }{如果(C1INTINTINTTFFbits.C1INTFFbits.RBIFTFbits.C1INTFFFFBIFIF){/如果(C1RRRXFUL1XFUL1==C1RXFUL1==1==1){C1RXXXXXFUL11XXXXecFUL11bits1message=1_rXXXXXFUL1bits.1=1=1来自CE427示例:voidRxECAN1( mID *message ){ unsigned int ide = 0; unsigned int srr = 0; unsigned long id = 0; /* Standard Message Format: Word0 : 0bUUUx xxxx xxxx xxxx |____________||| SID10:0 SRR IDE(bit 0) Word1 : 0bUUUU xxxx xxxx xxxx |____________| EID17:6 Word2 : 0bxxxx xxx0 UUU0 xxxx |_____|| |__| EID5:0 RTRDLC word3-word6:数据字节word7:过滤器命中代码位,替换远程请求位SRR->;“0”正常消息“1”消息将请求远程传输“扩展标识符位IDE->;“0”消息将传输标准标识符“1”消息将传输扩展标识符“远程Tr”传输请求比特RTR->;“0”消息是正常消息“1”消息传输是远程消息*/*读字0,查看消息类型*/ide=ecan1msgBuf[message->.][0]&0x0001;srr=ecan1msgBuf[message->.][0]&0x0002;/*查看什么类型消息e它是*//*消息是标准标识符*/如果(id e==0){消息->id={消息->id=(ecan1msgBuf[消息->缓冲器][0]&0]&&0x1FFC][0]&0x1FFCFFC]>2;消息->2;消息->>2;消息->->frame->frame->帧类型=CAN_type=CAN_FRAME_FRAME_FRAME_STD;}/*mesage是扩展标识符message->;id=id<;<<;16;id=ecan1msgBuf[消息->;缓冲器][1]&&>;缓冲器[消息->;缓冲器][1]->->;16;id=ecan1msggBuf=id[消息->>>id>;缓冲区[1][1]&->>>;0][1]&&;0x0x000FFFF][1][1]&&;0]&;0x0x0x0x0FFF;0][1]&&&;0x0x0CAN_FRAME_EXT;}/*检查如果(srr==1){message->message_type=CAN_MSG_RTR;}/*.message*/.{message->message_type=CAN_MSG_DATA;message->data[0]=(unsigned char)ecan1msgBuf[message->.][3];message->data[1]=(unsigned char)((message->)ecan1msgBuf[message->;缓冲器[消息->;缓冲器][3][3]&&;0xFF00]>>;gt[3][3][3][3][3][3][3][3][3]>>缓冲器[3]>->;以及0xFF00号[3]&;0xFF00&&;gt>>;8];消息->>;>;>;8;消息->;数据[2][2]=(未签名字符]=(无符号[2]=(未签名字符](无符号)数据[2]=(未(未签名的炭)ecan1msgBuf[我][5];消息->->;缓冲区][5];消息->数据[5]=(未签名的字符)((ecan1msgBuf[消息->;缓冲器][5][5]>>;以及>;缓冲器][5];消息->数据[5]=(未签名的字符]=(未签名char[无符号字符]]](ecan1msgBuf[消息->;缓冲器][5]]][5]>;以及>;缓冲区][5][5]&;以及;以及0xFF;amp;0xFF;0xFF;0xFF00&;0xFF00]6]&0xFF00)>>;8);message->data_.=(无符号字符);(message->(无符号char);(ecan1msgBuf[消息->;缓冲器][2]&>和0x000F);;如果((ecan1msgBuf[消息->消息->;缓冲器[2][2]&;0x000F][2]&;0x000F);;如果((ecan1msgBuf(ecan1msgBuf[message->[message->;缓冲器][message->;缓冲器][message->;缓冲器][3]]]]]][3]]]=3]==0]&&(ecan1msgBuf[message->bu]FFEr[[ 6 ]=0)] {BLink(),}有什么想法?
|
|
|
|
|
|
知道了!这些是初始化接收器的过滤器和掩码的正确函数调用:Ecan1WriteRxAcptFilter(1,0x1FFEFFFF,1,1,0);Ecan1WriteRxAcptMask(1,0x1FFFFFFFFFFF,1,1);这是发送器发送消息的正确方式:Ecan1WriteTxMsgBufId(0,0x1FFFFFFFFFFFFFFFFE,1,0);Ecan1WriteTXMSGBUFDATA(0, 8,0x1111,0x2222,0x33 33,0x44 44);
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5794 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1125浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 17:01 , Processed in 0.679838 second(s), Total 52, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
6063