历史上的今天
返回首页

历史上的今天

今天是:2024年09月30日(星期一)

正在发生

2019年09月30日 | stm32CubeMx CAN 发送数据

2019-09-30 来源:eefocus

平台  STM32F429

软件  STM32CubeMx 5.0.0

固件库  STM32Cube_FW_F4_V1.23.0 

目的: 实现 CAN 的发送

 

一  简介

  CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。

  

 

 

       由于 CAN 属于异步通讯,没有时钟信号线,连接在同一个总线网络中的各个节点会像串口异步通讯那样,节点间使用约定好的波特率进行通讯,特别地,CAN 还会使用“位同步”的方式来抗干扰、吸收误差,实现对总线电平信号进行正确的采样,确保通讯正常。

       为了实现位同步,CAN 协议把每一个数据位的时序分解成如图 43-5 所示的 SS 段、PTS 段、PBS1 段、PBS2 段,这四段的长度加起来即为一个 CAN 数据位的长度。分解后最小的时间单位是 Tq,而一个完整的位由 8~25 个 Tq 组成。为方便表示,图中的高低电平直接代表信号逻辑 0 或逻辑 1(不是差分信号)。

 

 

波特率 = Tq *(SS+PTS+PBS1+PBS2)

 

二  创建工程

 

 

 生成代码

修改代码

 

启动 CAN 

HAL_CAN_Start(&hcan1);

发送数据

CAN_TxHeaderTypeDef TxHeader;

uint8_t TxData[8] = {0x23, 0x81, 0x60, 0x00, 0x55, 0x55, 0x08, 0x00};

uint32_t TxMailbox; 

uint32_t std_id = 0x601;  


TxHeader.RTR = CAN_RTR_DATA;

TxHeader.IDE = CAN_ID_STD;            

TxHeader.StdId=std_id;

TxHeader.TransmitGlobalTime = DISABLE;

TxHeader.DLC = 8;

        

if (HAL_CAN_AddTxMessage(&hcan1, &TxHeader, TxData, &TxMailbox) != HAL_OK)

{

   /* Transmission request Error */

   Error_Handler();

}

实验结果:

使用USB转CAN盒,打开ecantools软件,波特率为500k

按下按键,收到数据

 

 

推荐阅读

史海拾趣

Ferroperm公司的发展小趣事

在发展的过程中,Ferroperm公司不断进行技术创新和产品研发,推动产品的多样化发展。他们成功开发了一系列具有高性能和独特功能的电磁材料,如高性能铁氧体、NdFeB永磁体等。这些产品不仅满足了客户对电磁材料性能的高要求,还推动了相关行业的发展。同时,Ferroperm还不断拓展产品线,推出了变压器、电感器、滤波器等一系列电子产品,进一步巩固了其在电磁材料领域的领先地位。

骏晔科技(DreamLNK)公司的发展小趣事

骏晔科技非常重视知识产权的积累与保护。公司拥有一支专业的研发团队,致力于新产品的研发和技术创新。同时,公司还积极申请专利和软件著作权,保护自身的技术成果。截至目前,骏晔科技已经拥有8个专利信息和12个软件著作权,这些知识产权的拥有,为公司的发展提供了强有力的支撑。

常州星海电子(Starsea)公司的发展小趣事

随着市场需求的不断变化和消费者需求的多样化,常州星海电子不断调整和优化产品结构。公司现已形成了包括普通整流、开关、快速恢复、高效率、超快速、肖特基、双向触发管、整流桥、高反压以及瞬间突波电压吸收、稳压等多种系列、多种封装形式的二极管产品。这些产品广泛应用于电脑、家电、邮电通讯等行业,为公司赢得了广阔的市场空间。

Continental公司的发展小趣事

Continental公司,即大陆集团,始建于1871年,总部位于德国的汉诺威市。最初,公司的主营业务是生产橡胶制品以及实心马车和自行车轮胎。在公司的早期历史中,一个关键的转折点出现在1882年,公司决定以猖獗的烈马作为品牌LOGO,象征着所生产的轮胎像强壮的烈马一般所向披靡。这一标志不仅赋予了轮胎强大的象征意义,还让人们开始将这些轮胎称为“马牌轮胎”。进入19世纪90年代,大陆集团成为了第一家生产充气马车和自行车胎的德国公司,这标志着其在轮胎制造技术上的重要突破。

Hengstler GmbH公司的发展小趣事

随着汽车电子化的趋势日益明显,大陆集团也开始将业务拓展到汽车电子领域。在新的架构体系中,车身电子部门被纳入“车联网和信息”这个大的业务板块中。大陆集团致力于实现车身电子的更好互联、更好呈现信息和更好的集成。通过互联技术,数据能够在汽车与外界之间进行传递,并将这些信息通过人机交互界面呈现给驾驶者和乘客。同时,大陆集团还致力于确保数据从车辆到云端的顺畅传输和处理。这些举措使得大陆集团在汽车电子领域取得了显著的进展。

Clever Little Box公司的发展小趣事

Clever Little Box公司成立于1964年,当时正值电子行业的蓬勃发展时期。创始人凭借对音频和电子技术的深厚理解,以及对市场的敏锐洞察,决定成立这家公司,专注于音频和电子组件的分销。创业初期,公司面临着资金短缺、市场竞争激烈等诸多挑战,但创始人凭借坚定的信念和不懈的努力,逐渐在市场中站稳了脚跟。

问答坊 | AI 解惑

vb程序调试正常运行错误

本人刚学VB,在写一个串口数据采集大的小软件,刚开始就遇到了问题,以下代码,我在调试时都正常运行,能正确获得返回数据,可是生成exe文件后,程序却没反应,也没有错误信息出现!就是没有数据,求高手帮忙! Public gSend As Boolean  &nb ...…

查看全部问答>

音频驱动问题

马上要改个音频的linux下驱动,具体如下:以前用aic32现在要改成aic31。linux下驱动 请问:        芯片手册是英文的,有些东西看不大懂。音频芯片相关的文档,或音频方面的基础知识要去哪里找,或搜索什么关键词,我搜了 ...…

查看全部问答>

wince5.0中如何捕捉鼠标位置,实现全屏书写,实时显示书写的轨迹?

wince5.0中如何捕捉鼠标位置,实现全屏书写,实时显示书写的轨迹?在自己建立的窗口中已经可以书写,显示轨迹了。但是出来自己创建的窗口就没办法书写了。困恼了很久了,高手、专家指点啊。最好能给点实例代码参考 邮箱echenxi@163.com  …

查看全部问答>

请问

刚涉足这个领域,要配硬件环境,不知道哪个开发语言好呢.…

查看全部问答>

请教看懂原理图需要什么样的基础?

要看懂原理图需要哪些学科知识作为基础? 想学偏软件方面,C和汇编基础比较好,电路理论的基础比较差。 数电模电没学,能不能学嵌入式呢?…

查看全部问答>

关于LED驱动电源的谐波测试必备

杭州远方PF9811,才两千多块钱; 2-50次谐波都能测出来; 按IEC61000-3-2,谐波要测到39次…

查看全部问答>

ZigBee网络是否容许有的设备加密有的不加密

我现在在测试zigbee加密问题,协调器不使用加密,而路由器使用机密的时候,发现路由加入不了网络,不知到为什么。请哪位高手指教一下。 哦,我加密的时候只在f8Config.cfg上面把DSECURE设成1.…

查看全部问答>

请教关于市电220V检测电路

最近朋友让我给他弄一个市电检测电路,用在工业上的,要求在市电200V以上的时候输出一个脉冲,并且脉冲宽度在有限的时间内可调,各位大虾有没有做过类似电路的?望指点一二。以下是我个人设计的电路,在我个人的系统中测试的结果还算理想,经过几天 ...…

查看全部问答>

碰到一个g2553AD的有趣现象

有两个待测电压A,B, B的功率比A大;两块g2553; 现象:测电压A,用万用表可以测得出,一接到板子上用g2553A测就不行;换上g2553B就行了.程序是一样。           测电压B,用用万用表跟g2553A B都可以测得出。 ...…

查看全部问答>