سلام
من می خوام که از پروتکل CAN تویه LPC2368 استفاده کنم.
شماتیک مدار به این ترتیبه:

پایه های VCC ی LPC2368 به +3.3 وصله و VSS ها هم به زمین متصلن.
کریستال هم 12M هستش.
پایه VDD ی MCP2551 هم +7 و GND و RS هم به زمین متصلن.
کدهای برنامه هم اینه:
وقتی که دیتا از TX2 به RX1 برسه
LED باید روشن بشه.
من برنامه رو با دیباگر keil سیموله کردم و اون نشون داد که اطلاعات به درستی ارسال می شه
اما نتونستم قسمت دریافت رو هم چک کنم.
به جایه مقاومت 120 هم از 270 استفاده کردم (به دلیل کمبود امکانات)
به نظر شما کدهای برنامه مشکل داره یا سخت افزار؟
من می خوام که از پروتکل CAN تویه LPC2368 استفاده کنم.
شماتیک مدار به این ترتیبه:

پایه های VCC ی LPC2368 به +3.3 وصله و VSS ها هم به زمین متصلن.
کریستال هم 12M هستش.
پایه VDD ی MCP2551 هم +7 و GND و RS هم به زمین متصلن.
کدهای برنامه هم اینه:
کد:
#include <LPC23xx.h> void CAN1IRQ (void) { IOSET0 |=(1<<22); CAN1CMR =0x00000004; VICVectAddr =0x00000000; } int main (void) { unsigned int i=1; unsigned int delay=0; IODIR0 |=(1<<22); IOCLR0 |=(1<<22); //------- initialize CAN2---------// PINSEL0 |=0x2<<8|0x2<<12; PCONP |=0x1<<14; CAN2MOD |=0x00000001; CAN2BTR =0x0B | 0x05<<16 |0x02<<20; CAN2MOD =0x00000000; //---------initialize CAN1---------// PINSEL0 |=0x5; PINSEL0 |=0x1<<13; CAN1MOD |=0x00000001; CAN1BTR =0x0B|0x05<<16 |0x02<<20; CAN1IER =0x00000001; VICVectPriority23 =0x00000000; VICVectAddr23 =(unsigned)CAN1IRQ; VICIntEnable =0x00800000; CAN_AFMR =0x00000003; //--------transfer data-----------// CAN2TFI1 =0x00040000; for(i=1;i<0x00000100;i=i<<1) { CAN2TID1=i; if(CAN2SR&0x00000004) { CAN2TDA1=i; CAN2CMR=0x0000021; } for(delay=0;delay<0xA0000;delay++); } while(1); }
LED باید روشن بشه.
من برنامه رو با دیباگر keil سیموله کردم و اون نشون داد که اطلاعات به درستی ارسال می شه
اما نتونستم قسمت دریافت رو هم چک کنم.
به جایه مقاومت 120 هم از 270 استفاده کردم (به دلیل کمبود امکانات)
به نظر شما کدهای برنامه مشکل داره یا سخت افزار؟