找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7382|回復: 4
打印 上一主題 下一主題
收起左側

STM32F107VC的CAN多幀中斷發(fā)送程序 調試通過

[復制鏈接]
跳轉到指定樓層
樓主
ID:160900 發(fā)表于 2017-6-8 10:33 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于STM32F107VC的CAN多幀中斷發(fā)送函數(shù),已通過調試


單片機源程序如下:
  1. /******************************************************************
  2. *STM32F107主控
  3. *ST3.5庫函數(shù)
  4. *CAN1的多幀發(fā)送函數(shù)
  5. *CAN1的中斷接收后、開發(fā)送中斷將數(shù)據(jù)發(fā)送出去,驗證成功
  6. ******************************************************************/
  7. #include "my.h"
  8. #include "led.h"
  9. #include "systick.h"
  10. #include "delay.h"
  11. #include "Can1.h"
  12. #include <string.h>
  13. u8 RBuf[256];
  14. u16 tmplen=0;
  15. u8 hostid=0;
  16. extern u8 FLAG_Start;
  17. u8 canbuf1[8]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
  18. int main(void)
  19. {
  20.         u8 t=0;

  21.   u8 ii;
  22.         SysTick_Init();
  23.         LED_GPIO_Init();
  24.         CAN_Config_Init();//500Kbit的波特率
  25.   for(;;)
  26.          {
  27.                   LED1=!LED1;
  28.                   LED2=!LED2;
  29.                   LED3=!LED3;
  30.                   LED4=!LED4;
  31.                   delay_ms(200);
  32.                   t++;
  33.                   if(t>=10)
  34.                                 {t=0;
  35.                                         LED1=1;
  36.                                         LED2=1;
  37.                                         LED3=1;
  38.                                         LED4=1;
  39.                                   break;
  40.                           }
  41.    }
  42.           for(ii=0;ii<64;ii++)RBuf[ii]=ii;
  43.          
  44.   while (1)
  45.   {
  46. //                 tmplen=CAN1_Read(&hostid,RBuf);
  47. //                 
  48. //                 hostid = tmplen = 0;
  49. //                 memset(RBuf,0,sizeof(RBuf));//復位緩存
  50. //                 CAN1_Send_Multi_Messages(ID1,RBuf,64);
  51.                 if(FLAG_Start==0xBB)
  52.                 {
  53.                         FLAG_Start=0;

  54.                         
  55.                          CAN_ITConfig(CAN1, CAN_IT_FMP0, DISABLE);        //關閉接受中斷
  56. //                         CAN_ITConfig(CAN1, CAN_IT_TME, ENABLE);
  57.                         CAN1_Send_Multi_Messages(ID1,RBuf,64);
  58. //       CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE);//關閉發(fā)送郵箱空中斷
  59.                          CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);        //開始接受中斷
  60.      //CAN_Send_Msg(ID1,CAN_ID_EXT,CAN_RTR_DATA,8,canbuf1);
  61.     }               
  62.                 if(FLAG_Start==0xaa)
  63.                 {
  64.                         FLAG_Start=0;
  65.                         CAN_ITConfig(CAN1, CAN_IT_FMP0, DISABLE);        //關閉接受中斷
  66.       CAN_Send_Msg(ID1,CAN_ID_EXT,CAN_RTR_DATA,8,canbuf1);
  67.                         CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE);        //開始接受中斷
  68.      
  69.     }                        
  70.                
  71. /************************System Operation **********************************/               
  72.                 t++;
  73. ……………………

  74. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
STM32F107的CAN接收發(fā)送中斷函數(shù).rar (425.56 KB, 下載次數(shù): 145)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:258804 發(fā)表于 2017-12-7 20:23 | 只看該作者
duoxie
回復

使用道具 舉報

板凳
ID:259059 發(fā)表于 2017-12-8 14:08 | 只看該作者
看一看,多謝分享
回復

使用道具 舉報

地板
ID:185321 發(fā)表于 2018-4-13 14:52 | 只看該作者
仔細看看,學習學習
回復

使用道具 舉報

5#
ID:392401 發(fā)表于 2018-9-1 18:02 | 只看該作者
很不錯 學習
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表