久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: MC9S12XEP100 can總線接收程序源碼 [打印本頁]

作者: liujianwe    時間: 2017-5-7 16:01
標題: MC9S12XEP100 can總線接收程序源碼
MC9S12XEP100處理器can總線接收程序



源程序:
  1. /*---------------------------------------------------------*/
  2. /************************************************************
  3. 飛翔科技MC9S12XEP100汽車電子開發(fā)板
  4. E-mail: 2008f.d@163.com
  5. ************************************************************/
  6. /*---------------------------------------------------------*/
  7. #include <hidef.h>      /* common defines and macros */
  8. #include "derivative.h"      /* derivative-specific definitions */
  9. #include "CAN.h"      
  10. #include "LCD.h"      

  11. #define LEDCPU PORTK_PK4
  12. #define LEDCPU_dir DDRK_DDRK4
  13. #define  BUS_CLOCK                   32000000           //總線頻率
  14. #define  OSC_CLOCK                   16000000           //晶振頻率

  15. char *xianshi[3] = {
  16. "飛翔科技開發(fā)板",
  17. "接收到的數(shù)據(jù)為:",
  18. };

  19. #define ID                  0x0001       //發(fā)送標識符
  20. #define data_len_TX          7           //發(fā)送數(shù)據(jù)長度

  21. unsigned char k;

  22. unsigned char senddata[8] = {'F','R','E','E','F','L','Y',0};     //發(fā)送的數(shù)據(jù)

  23. struct can_msg msg_send, msg_get;
  24. unsigned char datain=0;

  25. /*************************************************************/
  26. /*                      初始化鎖相環(huán)                         */
  27. /*************************************************************/
  28. void INIT_PLL(void)
  29. {
  30.     CLKSEL &= 0x7f;       //set OSCCLK as sysclk
  31.     PLLCTL &= 0x8F;       //Disable PLL circuit
  32.     CRGINT &= 0xDF;
  33.    
  34.     #if(BUS_CLOCK == 40000000)
  35.       SYNR = 0x44;
  36.     #elif(BUS_CLOCK == 32000000)
  37.       SYNR = 0x43;     
  38.     #elif(BUS_CLOCK == 24000000)
  39.       SYNR = 0x42;
  40.     #endif

  41.     REFDV = 0x81;         //PLLCLK=2×OSCCLK×(SYNDIV+1)/(REFDIV+1)=64MHz ,fbus=32M
  42.     PLLCTL =PLLCTL|0x70;  //Enable PLL circuit
  43.     asm NOP;
  44.     asm NOP;
  45.     while(!(CRGFLG&0x08)); //PLLCLK is Locked already
  46.     CLKSEL |= 0x80;        //set PLLCLK as sysclk
  47. }

  48. /************************************************************/
  49. /*                    初始化ECT模塊                         */
  50. /************************************************************/
  51. void initialize_ect(void){
  52.   ECT_TSCR1_TFFCA = 1;  // 定時器標志位快速清除
  53.   ECT_TSCR1_TEN = 1;    // 定時器使能位. 1=允許定時器正常工作; 0=使主定時器不起作用(包括計數(shù)器)
  54.   ECT_TIOS  = 0xff;      //指定所有通道為輸出比較方式
  55.   ECT_TCTL1 = 0x00;            // 后四個通道設置為定時器與輸出引腳斷開
  56.   ECT_TCTL2 = 0x00;     // 前四個通道設置為定時器與輸出引腳斷開
  57.   ECT_DLYCT = 0x00;            // 延遲控制功能禁止
  58.   ECT_ICOVW = 0x00;            // 對應的寄存器允許被覆蓋;  NOVWx = 1, 對應的寄存器不允許覆蓋
  59.   ECT_ICSYS = 0x00;            // 禁止IC及PAC的保持寄存器
  60.   ECT_TIE   = 0x00;     // 禁止所有通道定時中斷
  61.   ECT_TSCR2 = 0x07;            // 預分頻系數(shù)pr2-pr0:111,,時鐘周期為4us,
  62.   ECT_TFLG1 = 0xff;            // 清除各IC/OC中斷標志位
  63.   ECT_TFLG2 = 0xff;     // 清除自由定時器中斷標志位
  64. }

  65. /************************************************************/
  66. /*                在液晶上顯示接收到的數(shù)據(jù)                  */
  67. /************************************************************/
  68. void play_data(void)
  69. {
  70.     unsigned char l;
  71.     write_command(0x8A);
  72.     for(l=0;l<msg_get.len;l++)
  73.        write_Data(msg_get.data[l]);
  74. }

  75. /*************************************************************/
  76. /*                      中斷接收函數(shù)                         */
  77. /*************************************************************/
  78. #pragma CODE_SEG __NEAR_SEG NON_BANKED
  79. void interrupt CAN_receive(void)
  80. {
  81.       if(MSCAN0GetMsg(&msg_get))
  82.       {
  83.         // 接收新信息
  84.          if(msg_get.id == ID && (!msg_get.RTR))
  85.          {
  86.                  LEDCPU = ~LEDCPU;
  87.                  datain=1;      
  88.          }
  89.       }
  90.       else
  91.       {
  92.        for(;;);
  93.       }
  94. }
  95. #pragma CODE_SEG DEFAULT

  96. /*************************************************************/
  97. /*                        主函數(shù)                             */
  98. /*************************************************************/
  99. void main(void) {
  100.   DisableInterrupts;
  101.   INIT_PLL();
  102.   initialize_ect();
  103.   INIT_CAN0();
  104.   INIT_PORT();
  105.   LEDCPU_dir=1;


  106. …………限于本文篇幅 余下代碼請從5 1黑電子論壇下載附件…………
復制代碼


下載:
CAN接收.rar (545.79 KB, 下載次數(shù): 81)




作者: zhjh159357    時間: 2017-8-20 10:50
x謝謝樓主
作者: zhjh159357    時間: 2017-8-20 10:51
謝謝樓主!!!!!!!!!!!!!!!!!!!!!!!
作者: zimiaoxinghan    時間: 2017-9-26 10:42
非常感謝 分享 正在學習中
作者: HLX    時間: 2018-3-5 09:16
多謝樓主

作者: yyz_1111    時間: 2018-4-12 16:10
有問題想請教樓主
作者: yyz_1111    時間: 2018-4-12 17:32
主函數(shù)里面沒有看到接收函數(shù)啊
作者: 王力斯    時間: 2018-4-18 23:24
感謝大神分享   頂一個
作者: wkei007    時間: 2018-5-4 15:51
嗯,不錯,謝謝分享!
作者: 眾星電子    時間: 2018-7-24 22:17
感謝樓主分享,學習一下
作者: semonpic    時間: 2018-8-4 09:18
好資料
作者: guoshisheng    時間: 2019-4-1 00:03
非常感謝!!!  




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产一级特黄视频 | 久久精品这里 | 国产成人99久久亚洲综合精品 | 日韩av电影院 | 91精品国产综合久久精品 | 成人婷婷 | 老外黄色一级片 | 美女黄18岁以下禁止观看 | 妖精视频一区二区三区 | 欧美精品一区二区三区四区 | 日韩中文字幕免费在线 | 婷婷午夜天 | 成人精品一区二区三区 | 91福利影院| 亚洲色欲色欲www | 欧美成人一区二区 | 99福利视频 | 精品久久久久久国产 | 日韩精品一区二区三区中文字幕 | 日本精品久久久久久久 | 天堂色区 | 综合自拍 | 天天操天天射天天 | 久久91| 天天草天天干 | 国产亚洲精品久久19p | 99热精品在线观看 | 欧美激情在线一区二区三区 | 好婷婷网| 毛片久久久 | 特级黄一级播放 | 日韩插插 | www.夜夜骑| 日本h片在线观看 | 色综合久 | av喷水| 成人午夜影院 | 国产精品高潮呻吟久久av野狼 | 伊人91在线 | 午夜免费观看体验区 | 粉嫩在线 |