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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8815|回復: 11
收起左側

MC9S12XEP100 can總線接收程序源碼

  [復制鏈接]
ID:197759 發表于 2017-5-7 16:01 | 顯示全部樓層 |閱讀模式
MC9S12XEP100處理器can總線接收程序

0.png

源程序:
  1. /*---------------------------------------------------------*/
  2. /************************************************************
  3. 飛翔科技MC9S12XEP100汽車電子開發板
  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. "飛翔科技開發板",
  17. "接收到的數據為:",
  18. };

  19. #define ID                  0x0001       //發送標識符
  20. #define data_len_TX          7           //發送數據長度

  21. unsigned char k;

  22. unsigned char senddata[8] = {'F','R','E','E','F','L','Y',0};     //發送的數據

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

  25. /*************************************************************/
  26. /*                      初始化鎖相環                         */
  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=使主定時器不起作用(包括計數器)
  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;            // 預分頻系數pr2-pr0:111,,時鐘周期為4us,
  62.   ECT_TFLG1 = 0xff;            // 清除各IC/OC中斷標志位
  63.   ECT_TFLG2 = 0xff;     // 清除自由定時器中斷標志位
  64. }

  65. /************************************************************/
  66. /*                在液晶上顯示接收到的數據                  */
  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. /*                      中斷接收函數                         */
  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. /*                        主函數                             */
  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, 下載次數: 81)

評分

參與人數 2黑幣 +10 收起 理由
17756131173 + 5
tsfda + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:163379 發表于 2017-8-20 10:50 | 顯示全部樓層
x謝謝樓主
回復

使用道具 舉報

ID:163379 發表于 2017-8-20 10:51 | 顯示全部樓層
謝謝樓主!!!!!!!!!!!!!!!!!!!!!!!
回復

使用道具 舉報

ID:225731 發表于 2017-9-26 10:42 | 顯示全部樓層
非常感謝 分享 正在學習中
回復

使用道具 舉報

ID:271807 發表于 2018-3-5 09:16 | 顯示全部樓層
多謝樓主
回復

使用道具 舉報

ID:304739 發表于 2018-4-12 16:10 | 顯示全部樓層
有問題想請教樓主
回復

使用道具 舉報

ID:304739 發表于 2018-4-12 17:32 | 顯示全部樓層
主函數里面沒有看到接收函數啊
回復

使用道具 舉報

ID:287445 發表于 2018-4-18 23:24 | 顯示全部樓層
感謝大神分享   頂一個
回復

使用道具 舉報

ID:162611 發表于 2018-5-4 15:51 | 顯示全部樓層
嗯,不錯,謝謝分享!
回復

使用道具 舉報

ID:190160 發表于 2018-7-24 22:17 | 顯示全部樓層
感謝樓主分享,學習一下
回復

使用道具 舉報

ID:382760 發表于 2018-8-4 09:18 | 顯示全部樓層
好資料
回復

使用道具 舉報

ID:264735 發表于 2019-4-1 00:03 | 顯示全部樓層
非常感謝!!!  
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美群妇大交群中文字幕 | 中国一级特黄视频 | 九九精品在线 | 中文字幕精品视频在线观看 | 黄毛片| 欧美在线a| 成人在线观看免费 | 欧美日韩视频在线第一区 | 国产伦一区二区三区 | 伊大人久久 | 久久久久国产一级毛片高清网站 | 韩国欧洲一级毛片 | 青青久在线视频 | 国产高清视频一区 | 一级毛片在线播放 | av在线三级 | 午夜影院在线观看 | 五月综合激情在线 | 久久www免费人成看片高清 | 少妇一区在线观看 | 91麻豆产精品久久久久久夏晴子 | 国产视频精品免费 | 精品日韩 | 成人无遮挡毛片免费看 | 黄色网址免费在线观看 | 国产激情一区二区三区 | 久久久高清 | 91免费电影 | 国产精品亚洲精品久久 | 色婷婷综合久久久中字幕精品久久 | 毛片视频免费 | 成人h片在线观看 | 日韩电影一区二区三区 | 欧美电影免费观看 | 精品视频一区二区三区 | 国产精品永久免费 | 国产一区二区电影 | 中文字幕一页二页 | 中文字幕一区在线观看视频 | 美女张开腿露出尿口 | 黄色在线播放视频 |