新闻详情

新闻详情

首页 / 资讯中心 / 详情

STM32F103C8T6 CAN 通讯

发布时间:2026/10/2 20:51:29来源:尧图网络
STM32F103C8T6 CAN 通讯
1.硬件原理图2.CAN初始化void main_can(void) { //SystemInit(); //设置系统时钟为72M KeyInit(); //按键管脚初始化 //LED_GPIO_Config();//LED管脚初始化 CAN_GPIO_Config();//CAN管脚初始化 CAN_NVIC_Configuration(); //CAN中断初始化 CAN_INIT();//CA初始化N模块 // while(1) // { // GetKey(); //检测是否有按键按下 // // } }/* CAN初始化 */ void CAN_INIT(void) { CAN_InitTypeDef CAN_InitStructure; CAN_FilterInitTypeDef CAN_FilterInitStructure; CanTxMsg TxMessage; /* CAN register init */ CAN_DeInit(CAN1); //将外设CAN的全部寄存器重设为缺省值 CAN_StructInit(CAN_InitStructure);//把CAN_InitStruct中的每一个参数按缺省值填入 /* CAN cell init */ CAN_InitStructure.CAN_TTCMDISABLE;//没有使能时间触发模式 //CAN_InitStructure.CAN_ABOMDISABLE;//没有使能自动离线管理 CAN_InitStructure.CAN_ABOMENABLE;//没有使能自动离线管理 CAN_InitStructure.CAN_AWUMDISABLE;//没有使能自动唤醒模式 CAN_InitStructure.CAN_NARTDISABLE;//没有使能非自动重传模式 CAN_InitStructure.CAN_RFLMDISABLE;//没有使能接收FIFO锁定模式 CAN_InitStructure.CAN_TXFPDISABLE;//没有使能发送FIFO优先级 CAN_InitStructure.CAN_ModeCAN_Mode_Normal;//CAN设置为正常模式 CAN_InitStructure.CAN_SJWCAN_SJW_1tq; //重新同步跳跃宽度1个时间单位 // CAN_InitStructure.CAN_BS1CAN_BS1_3tq; //时间段1为3个时间单位 // CAN_InitStructure.CAN_BS2CAN_BS2_2tq; //时间段2为2个时间单位 // // CAN_InitStructure.CAN_Prescaler60*4; //时间单位长度为60 // CAN_InitStructure.CAN_Prescaler60*2; //时间单位长度为60 //50k CAN_InitStructure.CAN_BS111;//CAN_BS1_19tq; //时间段1为3个时间单位 CAN_InitStructure.CAN_BS2CAN_BS2_2tq; //时间段2为2个时间单位 // CAN_InitStructure.CAN_Prescaler60*4; //时间单位长度为60 CAN_InitStructure.CAN_Prescaler120; //时间单位长度为60 //50k CAN_Init(CAN1,CAN_InitStructure); //波特率为72M/2/60(132)0.1 即100K /* CAN filter init */ CAN_FilterInitStructure.CAN_FilterNumber1;//指定过滤器为1 CAN_FilterInitStructure.CAN_FilterModeCAN_FilterMode_IdMask;//指定过滤器为标识符屏蔽位模式 CAN_FilterInitStructure.CAN_FilterScaleCAN_FilterScale_32bit;//过滤器位宽为32位 CAN_FilterInitStructure.CAN_FilterIdHigh0x0000;// 过滤器标识符的高16位值 CAN_FilterInitStructure.CAN_FilterIdLow0x0000;// 过滤器标识符的低16位值 CAN_FilterInitStructure.CAN_FilterMaskIdHigh0x0000;//过滤器屏蔽标识符的高16位值 CAN_FilterInitStructure.CAN_FilterMaskIdLow0x0000;// 过滤器屏蔽标识符的低16位值 CAN_FilterInitStructure.CAN_FilterFIFOAssignmentCAN_FIFO0;// 设定了指向过滤器的FIFO为0 CAN_FilterInitStructure.CAN_FilterActivationENABLE;// 使能过滤器 CAN_FilterInit(CAN_FilterInitStructure);// 按上面的参数初始化过滤器 /* CAN FIFO0 message pending interrupt enable */ CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE); //使能FIFO0消息挂号中断 }3.发送代码/* 发送两个字节的数据*/ void can_tx3(u8 Data1,u8 Data2,u8 Data3) { CanTxMsg TxMessage; TxMessage.StdId0x00; //标准标识符为0x00 TxMessage.ExtId0x0000; //扩展标识符0x0000 TxMessage.IDECAN_ID_EXT;//使用标准标识符 TxMessage.RTRCAN_RTR_DATA;//为数据帧 //!!!!!!!!!! TxMessage.DLC8; // 消息的数据长度为2个字节 //!!!!!!! TxMessage.Data[0]0xf2; //第一个字节数据 TxMessage.Data[1]0xf2; //第二个字节数据 TxMessage.Data[2]Data1; //第一个字节数据 TxMessage.Data[3]Data2; //第二个字节数据 TxMessage.Data[4]Data3; //第二个字节数据 TxMessage.Data[5]0x00; //第二个字节数据 TxMessage.Data[6]0x00; //第二个字节数据 TxMessage.Data[7]0x00; //第二个字节数据 CAN_Transmit(CAN1,TxMessage); //发送数据 }4.测试
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

PyCharm集成SVN同步代码全攻略:从环境配置到冲突处理 2026/10/2 21:37:03

PyCharm集成SVN同步代码全攻略:从环境配置到冲突处理

搞了这么多年开发,我见过太多团队在“用什么版本控制工具”这件事上反复折腾。Git 这些年确实火,但在不少企业和传统项目里,SVN 依然是那个用得最顺手、权限控制最清晰的家伙。尤其是像我之前参与的几个项目组,领导直接甩给你一个…

阅读更多 →
给AI编程工具写个人规则:Trae与Cursor的高效配置指南 2026/10/2 21:37:03

给AI编程工具写个人规则:Trae与Cursor的高效配置指南

我最近花了不少时间在折腾Trae和Cursor这两个AI编程工具,越用越觉得有意思。很多人把这俩工具当成“高级问答框”,用完就关,其实它们真正的威力全藏在一个容易被忽略的地方——个人规则。所谓个人规则,就是你自己写给AI的一套行为…

阅读更多 →
openrig 配置指南:用 YAML 统一编排 Claude Code 与 Codex 2026/10/2 21:37:03

openrig 配置指南:用 YAML 统一编排 Claude Code 与 Codex

1. openrig 到底是个什么东西第一次看到 openrig 这个名字,我下意识以为是某个硬件机架项目,毕竟 rig 在英文里常指设备支架、测试台架。翻了翻社区里的讨论和几个相关仓库之后才反应过来,它更像是围绕 AI 编程助手生态做的一套本地配置与运行…

阅读更多 →
MiMo-V2.6深度解析:自我改进强化学习的开源训练范式 2026/10/2 21:36:49

MiMo-V2.6深度解析:自我改进强化学习的开源训练范式

开源大模型的牌桌上,最近又来了一把好牌——MiMo-V2.6。严格说,它更是一份方法论宣示:作为首个把“自我改进的强化学习规模化”当成主线训练范式的开源大模型,MiMo-V2.6把社区争论的焦点从“谁的推理更强”拉到了“怎么让模型自己…

阅读更多 →
python如何退回旧版本 2026/10/2 21:36:42

python如何退回旧版本

通过使用包管理工具pip, 以及创建虚拟环境, 再加上手动安装旧版本号, 这些操作加在一起, 就能够轻松地把软件版本退回到之前的状态, 而推荐大家去使用的方法呢, 就是直接使用包管理工具pip, 这是因为这个办法从表面上看比较简单, 而且在实际操作中也很易于把控操作过程。一、使…

阅读更多 →
10分钟搞定 claude-desktop-buddy:M5StickC Plus 固件烧录与 BLE 配对快速入门 2026/10/2 21:36:35

10分钟搞定 claude-desktop-buddy:M5StickC Plus 固件烧录与 BLE 配对快速入门

10分钟搞定 claude-desktop-buddy:M5StickC Plus 固件烧录与 BLE 配对快速入门 【免费下载链接】claude-desktop-buddy Reference and an example for the Bluetooth API for makers in Claude Cowork & Claude Code Desktop 项目地址: https://gitcode.com/g…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉