RTT——stm32f103的can总线通信

1.创建工程

2.配置时钟和引脚

引脚配置使能CAN

时钟配置,采用外部高速时钟

生成MDK工程后复制相关初始化函数到RTT-studio中

将void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)函数复制至broad.c文件中

将时钟配置函数复制到drv_clk.c中,只复制函数内容,不改变名字

3.使能外设

在stm32f1xx_hal_conf.h文件中取消CAN的注释符

在broad.h中添加以下代码

/*-------------------------- CAN CONFIG BEGIN --------------------------*/#define BSP_USING_CAN
#define BSP_USING_CAN1
/*#define BSP_USING_CAN2*//*-------------------------- CAN CONFIG END --------------------------*/

4.添加驱动代码

将drv_can.c和drv_can.h到工程的drives目录下
注意:drv_can.c和drv_can.h在“D:\RT-ThreadStudio\repo\Extract\RT-Thread_Source_Code\RT-Thread\4.0.3\bsp\stm32\libraries\HAL_Drivers”目录下

5.实例程序

添加官网给的实例程序到application中

6.操作

下载完程序后在命令行中输入can_sample,若是程序卡死在write函数中,则在drv_can.c中的void CAN1_TX_IRQHandler(void)函数最后添加:

    else{rt_hw_can_isr(&drv_can1.device, RT_CAN_EVENT_TX_FAIL | 0 << 8);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/542838.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

状态管理工具 PInia 初步上手指南

Vuex 作为一个老牌 Vue 状态管理库&#xff0c;大家都很熟悉了。 Pinia 是 Vue.js 团队成员专门为 Vue 开发的一个全新的状态管理库&#xff0c;并且已经被纳入官方 github&#xff0c;为什么有 Vuex 了还要再开发一个 Pinia &#xff1f; 先来一张图&#xff0c;看下当时对于…

机器学习之客户违约预测模型搭建之案例实战

1. 决策数模型搭建 1.1 数据预处理 客户违约预测模型的目的是通过已有的客户信息和违约表现来搭建合适的模型&#xff0c;从而预测之后的客户是否会违约。首先通过pandas库读取数据相关知识读取客户的证信数据以及其交易表现&#xff0c;即是否违约记录&#xff0c;代码如下&…

RK3568平台开发系列讲解(pinctrl篇)什么是 pinctrl子系统

🚀返回专栏总目录 文章目录 一、pinctrl 设备树二、pinctrl 驱动沉淀、分享、成长,让自己和他人都能有所收获!😄 Linux 中的 pinctrl 子系统(Pin Control Subsystem) 是一个用于管理和配置通用输入/输出(GPIO) 引脚的框架。 它提供了一种标准化的方法, 以在 Linux 内…

JAVA实战开源项目:森林火灾预警系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 系统基础模块2.3 烟雾传感器模块2.4 温度传感器模块2.5 历史记录模块2.6 园区数据模块 三、系统设计3.1 用例设计3.1.1 森林园区基础系统用例设计3.1.2 森林预警数据用例设计 3.2 数据库设计3.2.1 烟雾…

Halcon图像预处理、阈值分割

1、blob&#xff08;Binary Large Object&#xff09;是指二值图像中连通区域。 预处理通常包括一系列步骤&#xff0c;例如去噪、形态学操作、特征提取等。 read_image(Image,claudia) get_image_size(Image,Width,Height) dev_open_window_fit_size (0, 0, Width, Width, -1,…

java学习之路-程序逻辑控制

目录 1.分支结构 1.1 if语句 栗子 判断奇数还是偶数 判断一个年份是否为闰年 1.2switch语句 栗子 2. 循环结构 2.1while 循环 栗子 2.2break和continue break continue 2.3for循环 基本语法 栗子 2.4 do while 循环 3.输入输出 3.1输出 3.2从键盘输入 栗子…

Webapi(.net6) 批量服务注册

如果不考虑第三方库&#xff0c;如Autofac这种进行服务注入&#xff0c;通过本身的.Core Weabpi实现的&#xff0c;总结了两种实现方法&#xff0c; 1.一种是参考abp框架里面的形式; 1.1 新建个生命周期的文件夹: 三个接口分别为: public interface IScopedDependency { }pu…

因为manifest.json文件引起的 android-chrome-192x192.png 404 (Not Found)

H5项目打包之后&#xff0c;总是有这个报错&#xff0c;有时候还有别的icon也找不见 一通调查之后&#xff0c;发现是因为引入了一个vue插件 这个插件引入之后&#xff0c;webpack打包的时候就会自动在dist文件夹中产生一个manifest.json文件这个文件里面主要就是一些icon地址的…

最详细爬虫零基础教程02——http协议和请求头的介绍

文章目录 复习一、http和https协议二、网络请求的过程1.浏览器发送http请求的过程2.DNS服务器 三、Headers参数介绍总结 复习 在本节开始讲述的时候&#xff0c;我们先来复习一下爬虫的基本步骤&#xff1a; 一、http和https协议 HTTP协议&#xff08;Hypertext Transfer Pr…

【C++ RB树】

文章目录 红黑树红黑树的概念红黑树的性质红黑树节点的定义红黑树的插入代码实现总结 红黑树 AVL树是一颗绝对平衡的二叉搜索树&#xff0c;要求每个节点的左右高度差的绝对值不超过1&#xff0c;这样保证查询时的高效时间复杂度O( l o g 2 N ) log_2 N) log2​N)&#xff0c;…

【C++ 设计模式】策略模式与简单工厂模式的结合

文章目录 前言一、为什么需要策略模式简单工厂模式二、策略模式简单工厂模式实现原理三、UML图四、示例代码总结 前言 在软件设计中&#xff0c;常常会遇到需要根据不同情况选择不同算法或行为的情况。策略模式和简单工厂模式是两种常见的设计模式&#xff0c;它们分别解决了对…

机器学习-04-分类算法-02贝叶斯算法

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中分类算法&#xff0c;本篇为分类算法与贝叶斯算法部分。 本门课程的目标 完成一个特定行业的算法应用全过程&#xff1a; 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程…