transmit

can总线-stm32

六月ゝ 毕业季﹏ 提交于 2021-02-10 11:28:26
一、什么是can总线? can总线因为使用电压差表示逻辑1和0,所以抗干扰性强,传播距离远(500kbps 时130M),比特率越小越远 1.can有几根线?   2根, can_H ,can_L 2.can怎么表示1,0?   can_H - can_L > 0.9V ,为逻辑 0,也称为显性电平。   can_H - can_L < 0.5v ,为逻辑1,也称为隐性电平。 一般can_H为3.5V , 2.5V 一般can_L为2.5V ,1.5V 二、stm32 怎么使用can总线 1.can接口在哪?      stm32有can 总线控制器 ,以及有库函数stm32f10x_can.c可以驱动该控制器   但stm32只是有can总线控制器,要真正连接can总线,她还要外接 can总线收发器 ,才能分出来can_H ,can_L,例如如下芯片:   这个芯片的主要作用是发送时根据TXD的电平来决定can_H 和can_L的电平,以及接收时根据can_H 和 can_L的电平差来决定RXD的电平。 2.can概念入门比较好的文档 https://wenku.baidu.com/view/7701528a6529647d2728520f.html 这个文档比较详细的介绍了can帧的类型,以及各个帧每个字节,每个bit的含义,以及优先级仲裁机制。下面的例程是数据帧。 3

STM32(12)——CAN

风流意气都作罢 提交于 2021-02-07 04:55:56
简介:   CAN是Controller Area Network,是 ISO 国际标准化的串行通信协议。   CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。   STM32 自带的是 bxCAN ,即基本扩展 CAN。它支持 CAN 协议 2.0A 和 2.0B。它的 设计目标 是,以 最小的 CPU 负荷来高效处理大量收到的报文 。它也支持报文发送的优先级要求(优先级特性可软件配置)。对于安全紧要的应用,bxCAN 提供所有支持时间触发通信模式所需的硬件功能。    STM32 的 bxCAN 的主要特点有: 1.支持 CAN 协议 2.0A 和 2.0B 主动模式 2.波特率最高达 1Mbps 3.支持时间触发通信 4.具有 3 个发送邮箱 5.具有 3 级深度的 2 个接收 FIFO 6.可变的过滤器组(最多 28 个)   STM32 (互联型) :带有两个CAN控制器; 过滤器组 最多有 28 个 STM32 (增强型) :STM32F103ZET6只有1个CAN控制器; 过滤器组 只有 14 个   每个滤波器都是组x都是由2个32位寄存器,CAN_FxR1 和 CAN_FxR2 组成。    STM32 每个过滤器组的位宽都可以独立配置,以满足应用程序的不同需求

STM32CubeMX+ADC数据采集

佐手、 提交于 2021-01-13 05:39:23
设计对电池电压进行检测的应用程序 STM32理解: https://blog.csdn.net/u010893262/article/details/68942710 一、ADC(Analog-to-Digital Converter)模数转换器 模拟信号----->数字信号 二、ADC外设的工作参数配置 二、ADC外设的工作参数配置 三、配置USART外设的工作参数 四、生成代码 在main.c文件中设置所需变量 /* USER CODE BEGIN PV */ // ADC转换值存放 uint16_t adc_value = 0 ; // 电压值 float voltage = 0.0 ; // 电压值结果显示 char voltString[ 50 ] = { 0 }; /* USER CODE END PV */ 在while循环里 while ( 1 ) { // 启动ADC转换 HAL_ADC_Start(& hadc1); // 等待转换完成,第二个参数表示超时时间,单位ms HAL_ADC_PollForConversion(&hadc1, 100 ); // 为换取ADC状态 adc_value = HAL_ADC_GetValue(& hadc1); // 采取的右对齐除以2的12次方,参考电压为3.3V voltage = ( float )adc_value

单片机外围模块漫谈之三,CAN总线

白昼怎懂夜的黑 提交于 2020-12-30 06:49:16
1980 年, Bosch 的工程师开始研究汽车上高速串行通信的问题,并在1986年发布了CAN (Controller Area Network) 总线。CAN以其多主,高速(最高1M bps) ,抗干扰的特性被广泛应用汽车及各种工业环境。在此我们主要介绍一下CAN总线的特点,帧类型,以及应用中的注意事项。 1. CAN总线特点 1.1 多主控制 跟我们常用的RS485只有一个主机,从机只能等待主机的轮询不同,在CAN总线中,当任意一个节点监测到总线空闲时,就可以立即启动信息的发送,也就是每一个节点都可以当主机。当然,这马上会引起我们的担心。如同一个家庭每个人都当家做主,那还不乱了套吗?不急,我们来看一下。这个问题是如何被巧妙地解决的。 物理层 ,CAN采用差分总线。单片机引脚的逻辑电平0,被CAN收发器( PHY) 转换为显性电平( Dominant), 逻辑电平1被转换为隐性电平( Reccesive) 。总线上执行的是 “ 线与 ” 逻辑,只要有一个节点输出显性电平,那么总线上就是显性电平。 仲裁( Arbitration) ,CAN 的发送总是以SOF (Start Of Frame) 起始,紧跟器后是ID。在发送ID的同时,节点监听总线上的显隐状态,当监听到的状态与自己发送的不一致时,此节点将停止发送,进入只收模式。如下图所示,每一帧消息所具有的ID决定了此消息的优先级

基于STM32之UART串口通信协议(一)详解

女生的网名这么多〃 提交于 2020-12-29 05:17:02
一、前言 1、简介   写的这篇博客,是为了简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM32CubeMX来配置芯片的一些操作,在后面我会以我使用的STM32F429开发板来举例讲解(其他STM32系列芯片大多数都可以按照这些步骤来操作的),如有不足请多多指教。 2、UART简介   嵌入式开发中,UART串口通信协议是我们常用的通信协议(UART、I2C、SPI等)之一,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。 3、准备工作 1)Keil5   链接:点击 下载   提取码:wrt9 2)STMCubeMX5.1.0版本   链接:点击 下载   提取码:20xs 3)STMF429开发板    注:   只要是stm32的开发板都可以用到的,在STM32CubeMx里选对型号、配置好就行了。 二、UART详解 1、UART简介   嵌入式开发中,UART串口通信协议是我们常用的通信协议(UART、I2C、SPI等)之一,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),是异步串口通信协议的一种,工作原理是将传输数据的每个字符一位接一位地传输,它能将要传输的资料在串行通信与并行通信之间加以转换

IBM AIX 巡检脚本

℡╲_俬逩灬. 提交于 2020-11-27 09:32:03
export LANG=en_US echo "======== system information ========" > aix_chk.out prtconf > /tmp/aix_chk_tmp1 grep "System Model" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Machine Serial Number" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Host Name:" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Number Of Processors" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Processor Clock Speed" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Memory Size" /tmp/aix_chk_tmp1 >> aix_chk.out grep "Good Memory Size" /tmp/aix_chk_tmp1 >> aix_chk.out echo "" >> aix_chk.out echo "MICROCODE LEVEL" >> aix_chk.out lsmcode >> aix_chk.out echo "" >> aix

FTP连接工具,八大好用的FTP连接工具

时光怂恿深爱的人放手 提交于 2020-10-26 23:19:07
推荐一 : IIS7服务器管理工具 IIS7服务器管理工具是一款windows全系、Linux系统下链接并操控VPS、VNC、FTP等远程服务器、云服务器。 界面简单明了,操作易上手,功能强大,支持批量导入服务器,并批量打开,多窗口化管理,除此之外,加载本地硬盘、硬盘映射、加载服务器的声音,远程声卡读取等,完全实现各类场景使用,对于FTP链接界面,朋友FTP定时上传,定时下载(也可以说定时上传下载 定时备份),对于经常使用FTP的小伙伴来说,非常适用。 工具支持自动更新,压缩包只有7.62M,方便简洁,一步到位。 推荐二:WinSCP WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。.winscp也可以链接其他系统,比如linux系统。 推荐三:FireFTP 这是一个火狐的插件,必须在火狐Mozilla Firefox浏览器上面才能使用。 FireFTP是出品 LiteServe/LiteWeb/LiteFTP 等工具的公司新出的又一个简单小巧且容易上手的 FTP 客户端工具,支持多线程文件传输。 推荐四:xFTP Xftp是一个基于 MS windows 平台的功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS windows 用户能安全地在 UNIX

Blackfin DSP(八):1D DMA与音频处理模板

萝らか妹 提交于 2020-10-25 20:31:27
1.DMA产生的背景   在许多需要使用DSP 的场合,一般都需要大量的数据搬移工作,而如果每次数据搬移都由DSP 内核来参与完成,将大大占用DSP 内核的处理时间,从而严重影响其信号处理能力。因此,Blackfin DSP 集成了直接访问(DMA)控制器来完成数据搬移这种简单却耗时的工作。它可以直接进行数据搬移而不需要内核的参与。 说说我对DMA的理解:其实我觉得DMA不算难,反而十分便利,将它想象成城市供水局,为了给城市中不同的小区供水,最原始的办法就是挨家挨户的去送,这就耗费了大量的供水局(DSP内核)的人力物力,而当我们建成了自来水管道(DMA通道),一端连接到自来水厂(数据源),一端连接到需要供水的小区(目的地),当需要供水时阀门一开(DMA_ENABLE),自来水(数据)就源源不断的在管道中流动,再也不需要其它人员的参与了,是不是很方便???下面就看看DSP中的这条管道是如何建立的。 2.BF533的DMA总线结构图如下:        从图中可以看出,DMA可以在各种存储器与外设之间直接进行数据传输。 3. DMA的种类   DMA分为基于寄存器的DMA和基于描述符的DMA:   1)基于寄存器的DMA      允许用户 直接对 DMA 寄存器进行编程 ,当 DMA 完成时,由配置寄存器中特定的位来决定接下来的动作:是重装初始值,还是自动停止。   2

Overbooking Radio and Computation Resources in mmW-Mobile Edge Computing to Reduce Vulnerability

让人想犯罪 __ 提交于 2020-10-07 11:08:36
Overbooking Radio and Computation Resources in mmW-Mobile Edge Computing to Reduce Vulnerability to Channel Intermittency 动机 5G 路线图的关键特征之一是 MEC,这是将信息技术 IT 服务带到移动用户身边的一种有效方式。在接入网的边缘移动计算和缓存资源,可以实现低延迟和高可靠性的服务,这是许多与 5G 相关的垂直领域所需要的,比如工业 4.0 或自动驾驶。 由于毫米波链路的 高数据速率和通过大规模波束形成处理干扰 的能力,将 MEC 与毫米波通信 合并 可以提供更大的推动力,从而实现低延迟和高可靠性服务。 然而,毫米波链路容易发生阻塞事件,这可能会限制 mmW- MEC 部署的有效性。为了克服阻塞事件和改善 mmW-MEC,本文提出并分析了两种克服阻塞效应的策略: 根据阻塞事件的统计,提前预定计算和通信资源 采用多链路通信 背景 5G 路线图的主要目标是设计一个公共/通用的通信基础设施,在不同的行业或垂直领域(如互联汽车、自动驾驶、增强现实、视频游戏和物联网系统)创造新的商业机会。为了推动这些不同的服务,需要考虑 延迟、可靠性和数据速率 等方面不同的需求,通过 网络切片 ,在一个物理网络划分为多个虚拟网络,每个虚拟网络匹配其特定的要求和约束

STM32下mavlink的使用个人总结

青春壹個敷衍的年華 提交于 2020-10-06 13:02:33
我一开始想既然mavlink在STM32的使用只需要调用函数就可以了,但是mavlink在STM32的代码似乎比较多,我就想起直接看它的头文件有哪些函数,结果查看头文件有巨大发现 对应每种消息都有专门一个头文件,我甚至找到了vision_positon_estimate的头文件,是不是要读取某类消息只需要调用这个对应消息头文件里面的函数就可以了。 是不是在驱动文件include这个头文件就可以了,然后直接调用就可以了。好像main文件要Include mavros.h https://blog.csdn.net/sinat_16643223/article/details/108916785 在这个头文件里面我找到了似乎是对应读取某个参数的,这么来看用mavlink其实挺方便的。 那我再写驱动或者ACfly的传感器二次开发很方便了,都不需要自己写协议解析,就调用一个函数得到数据之后直接传给更新函数就行了。 static inline uint64_t mavlink_msg_vision_position_estimate_get_usec(const mavlink_message_t* msg) { return _MAV_RETURN_uint64_t(msg, 0); } /** * @brief Get field x from vision_position