当前位置: 首页 > wzjs >正文

网站建设百度经验小程序定制语言

网站建设百度经验,小程序定制语言,西安关键词网站排名,修改wordpress文件大小CAN总线简介 硬件电路 CAN 电平标准 CAN 收发器 CAN物理层作用 数据帧 遥控帧 CAN 5种类型帧 位填充 波形实例 接收方数据采样 接收方采样遇到的问题 接收方位时序 硬同步 再同步 波特率计算 资源分配规则 STM32 CAN外设介绍 CAN基本结构 发送过程 接收过程 标识符过滤器 测试模…

CAN总线简介

在这里插入图片描述

硬件电路

硬件电路图

CAN 电平标准

在这里插入图片描述

CAN 收发器

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用语法后生成一个完美的目录。

CAN物理层作用

在这里插入图片描述

数据帧

在这里插入图片描述

在这里插入图片描述

遥控帧

在这里插入图片描述

CAN 5种类型帧

在这里插入图片描述

位填充

在这里插入图片描述

波形实例

在这里插入图片描述
在这里插入图片描述

接收方数据采样

在这里插入图片描述

接收方采样遇到的问题

在这里插入图片描述

接收方位时序

在这里插入图片描述

硬同步

在这里插入图片描述

再同步

在这里插入图片描述

波特率计算

在这里插入图片描述

资源分配规则

在这里插入图片描述
在这里插入图片描述

STM32 CAN外设介绍

在这里插入图片描述
在这里插入图片描述

CAN基本结构

在这里插入图片描述

发送过程

在这里插入图片描述

接收过程

在这里插入图片描述

标识符过滤器

在这里插入图片描述
在这里插入图片描述

测试模式

在这里插入图片描述

工作模式

在这里插入图片描述

初始化配置代码

/*** @brief       CAN初始化* @param       tsjw    : 重新同步跳跃时间单元.范围: 1~3;* @param       tbs2    : 时间段2的时间单元.范围: 1~8;* @param       tbs1    : 时间段1的时间单元.范围: 1~16;* @param       brp     : 波特率分频器.范围: 1~1024;*   @note      以上4个参数, 在函数内部会减1, 所以, 任何一个参数都不能等于0*              CAN挂在APB1上面, 其输入时钟频率为 Fpclk1 = PCLK1 = 36Mhz*              tq     = brp * tpclk1;*              波特率 = Fpclk1 / ((tbs1 + tbs2 + 1) * brp);*              我们设置 can_init(1, 8, 9, 4, 1), 则CAN波特率为:*              36M / ((8 + 9 + 1) * 4) = 500Kbps** @param       mode    : CAN_MODE_NORMAL,  正常模式;CAN_MODE_LOOPBACK,回环模式;* @retval      0,  初始化成功; 其他, 初始化失败;*/
uint8_t can_init(uint32_t tsjw, uint32_t tbs2, uint32_t tbs1, uint16_t brp, uint32_t mode)
{g_canx_handler.Instance = CAN1;g_canx_handler.Init.Prescaler = brp;                /* 分频系数(Fdiv)为brp+1 */g_canx_handler.Init.Mode = mode;                    /* 模式设置 */g_canx_handler.Init.SyncJumpWidth = tsjw;           /* 重新同步跳跃宽度(Tsjw)为tsjw+1个时间单位 CAN_SJW_1TQ~CAN_SJW_4TQ */g_canx_handler.Init.TimeSeg1 = tbs1;                /* tbs1范围CAN_BS1_1TQ~CAN_BS1_16TQ */g_canx_handler.Init.TimeSeg2 = tbs2;                /* tbs2范围CAN_BS2_1TQ~CAN_BS2_8TQ */g_canx_handler.Init.TimeTriggeredMode = DISABLE;    /* 非时间触发通信模式 */g_canx_handler.Init.AutoBusOff = DISABLE;           /* 软件自动离线管理 */g_canx_handler.Init.AutoWakeUp = DISABLE;           /* 睡眠模式通过软件唤醒(清除CAN->MCR的SLEEP位) */g_canx_handler.Init.AutoRetransmission = ENABLE;    /* 禁止报文自动传送 */g_canx_handler.Init.ReceiveFifoLocked = DISABLE;    /* 报文不锁定,新的覆盖旧的 */g_canx_handler.Init.TransmitFifoPriority = DISABLE; /* 优先级由报文标识符决定 */if (HAL_CAN_Init(&g_canx_handler) != HAL_OK){return 1;}#if CAN_RX0_INT_ENABLE/* 使用中断接收 */__HAL_CAN_ENABLE_IT(&g_canx_handler, CAN_IT_RX_FIFO0_MSG_PENDING); /* FIFO0消息挂号中断允许 */HAL_NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn);                          /* 使能CAN中断 */HAL_NVIC_SetPriority(USB_LP_CAN1_RX0_IRQn, 1, 0);                  /* 抢占优先级1,子优先级0 */
#endifCAN_FilterTypeDef sFilterConfig;/*配置CAN过滤器*/sFilterConfig.FilterBank = 0;                         /* 过滤器0 */sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;     /* 标识符屏蔽位模式 */sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;    /* 长度32位位宽*/sFilterConfig.FilterIdHigh = 0x0000;                  /* 32位ID */sFilterConfig.FilterIdLow = 0x0000;sFilterConfig.FilterMaskIdHigh = 0x0000;              /* 32位MASK */sFilterConfig.FilterMaskIdLow = 0x0000;sFilterConfig.FilterFIFOAssignment = CAN_FILTER_FIFO0;    /* 过滤器0关联到FIFO0 */sFilterConfig.FilterActivation = CAN_FILTER_ENABLE;       /* 激活滤波器0 */sFilterConfig.SlaveStartFilterBank = 14;/* 过滤器配置 */if (HAL_CAN_ConfigFilter(&g_canx_handler, &sFilterConfig) != HAL_OK){return 2;}/* 启动CAN外围设备 */if (HAL_CAN_Start(&g_canx_handler) != HAL_OK){return 3;}return 0;
}/*** @brief       CAN底层驱动,引脚配置,时钟配置,中断配置此函数会被HAL_CAN_Init()调用* @param       hcan:CAN句柄* @retval      无*/
void HAL_CAN_MspInit(CAN_HandleTypeDef *hcan)
{if (CAN1 == hcan->Instance){CAN_RX_GPIO_CLK_ENABLE();       /* CAN_RX脚时钟使能 */CAN_TX_GPIO_CLK_ENABLE();       /* CAN_TX脚时钟使能 */__HAL_RCC_CAN1_CLK_ENABLE();    /* 使能CAN1时钟 */GPIO_InitTypeDef gpio_initure;gpio_initure.Pin = CAN_TX_GPIO_PIN;gpio_initure.Mode = GPIO_MODE_AF_PP;gpio_initure.Pull = GPIO_PULLUP;gpio_initure.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(CAN_TX_GPIO_PORT, &gpio_initure); /* CAN_TX脚 模式设置 */gpio_initure.Pin = CAN_RX_GPIO_PIN;gpio_initure.Mode = GPIO_MODE_AF_INPUT;HAL_GPIO_Init(CAN_RX_GPIO_PORT, &gpio_initure); /* CAN_RX脚 必须设置成输入模式 */}
}
http://www.dtcms.com/wzjs/552651.html

相关文章:

  • 网站导航html源码电子商务网站怎么做推广
  • 安徽住房城乡建设厅网站有网站如何做app
  • 建设银行大连招聘网站网页版梦幻西游决战华山奖励
  • 加盟做地方门户网站厦门做百度推广的网站
  • 医药网站素材wordpress.c0m
  • 潍坊学校网站建设丹灶网站建设
  • 在哪个网站可以搜索做凉菜视频免费商品交易网站代码下载
  • 网站开发 微盘做网站上传服务器
  • 网站模板出售安徽省网站肥建设网站
  • 电子商务网站的建设包含哪些流程中国建设银行征信网站
  • 开淘宝店怎么做充值网站嵌入式工程师能干多久
  • 最好的小说网站排名广告制作平台
  • 珠海中国建设银行招聘信息网站绍兴网站建设推广
  • 顺德营销型网站微信公众号怎么开发
  • 海南做房地产网站的网络公司材料信息价查询网站
  • 优化型网站建设的基本要求wordpress 防源码抓取
  • 网站服务器建设上海网络推广公司网站
  • 做图表的网站模板网站会影响网站优化吗
  • 建设网站用哪个主机好如何在网站上推广自己的链接
  • 批量网站建设开元酒店集团品牌建设
  • 兴国县城乡规划建设局网站就业网站建设方案
  • 融水苗族自治县网站建设公司娄底360seo优化公司
  • 网站设计中级南昌那个公司做网站好
  • 国外做做网站wordpress默认缩略图
  • 网站程序购买微信公众号要钱吗
  • 电商网站用php做的吗骏域网站建设专家电脑版
  • 网站对公司有什么好处南海网站建设多少钱
  • 北京高端网站建设费用做标准件生意上什么网站
  • php做的静态网站怎么加密网站搭建报价单
  • 国外虚拟物品交易网站办公室装修设计app