找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7382|回复: 4
打印 上一主题 下一主题
收起左侧

STM32F107VC的CAN多帧中断发送程序 调试通过

[复制链接]
跳转到指定楼层
楼主
基于STM32F107VC的CAN多帧中断发送函数,已通过调试


单片机源程序如下:
  1. /******************************************************************
  2. *STM32F107主控
  3. *ST3.5库函数
  4. *CAN1的多帧发送函数
  5. *CAN1的中断接收后、开发送中断将数据发送出去,验证成功
  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);//关闭发送邮箱空中断
  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接收发送中断函数.rar (425.56 KB, 下载次数: 145)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:258804 发表于 2017-12-7 20:23 | 只看该作者
duoxie
回复

使用道具 举报

板凳
ID:259059 发表于 2017-12-8 14:08 | 只看该作者
看一看,多谢分享
回复

使用道具 举报

地板
ID:185321 发表于 2018-4-13 14:52 | 只看该作者
仔细看看,学习学习
回复

使用道具 举报

5#
ID:392401 发表于 2018-9-1 18:02 | 只看该作者
很不错 学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表