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

周到的网站建设推广admin5站长网

周到的网站建设推广,admin5站长网,网站内页不收录,网站智能建设系统源码1、CAN基本驱动步骤 (1)CAN参数初始化 工作模式、波特率等函数#xff1a;HAL_CAN_Init (2)使能CAN时钟和初始化相关引脚 GPIO模式设为复用功能模式函数#xff1a;HAL_CAN_MspInit(CAN的初始化回调函数) (3)设置过滤器 过滤器的配置函数#xff1a;HAL_CAN_ConfigFil…1、CAN基本驱动步骤 (1)CAN参数初始化 工作模式、波特率等函数HAL_CAN_Init (2)使能CAN时钟和初始化相关引脚 GPIO模式设为复用功能模式函数HAL_CAN_MspInit(CAN的初始化回调函数) (3)设置过滤器 过滤器的配置函数HAL_CAN_ConfigFilter (4)CAN数据的接收和发送 HAL_CAN_AddTxMessage  发送消息HAL_CAN_GetRxMessage  接收数据 (5)使能CAN相关中断/设置NVIC/编写中断服务函数 NVIC中断控制器__HAL_CAN_ENABLE_IT 可选 2、开发环境 (1)KeilMDKV5.38.0.0 (2)STM32CubeMXV6.8.1 (3)MCUSTM32F407ZGT6 3、实验目的 (1)使用回环模式实现自发自收。 (2)CAN发送数据然后接收数据将接收到的数据通过串口发送出去。 4、原理图 (1)CAN芯片选择TJA1040。 (2)CAN_TX接PA12CAN_RX接PA11。 5、STM32CubeMX创建工程及配置 5.1、补充内容 (1)查阅数据手册CAN外设接在总线APB1上时钟频率此处配置为36MHz。 (2)CubeMX创建工程、配置时钟、串口不做详细介绍。 5.2、CubeMX中CAN的配置 (1)使能CAN外设。 (2)配置CAN的参数 Bit Timings Parameters位时序参数 Prescaler分频系数Time Quanta in Bit Segment 1时间段1(配置为9标识9个时间单元)Time Quanta in Bit Segment 2时间段2ReSynchronization Jump Width重新同步跳跃宽度TS18、TS27、BRP3波特率 36000 / [( 9 8 1 ) * 4] 500KbpsBasic Parameters基本参数 Time Triggered Communication Mode时间触发通信方式Automatic Bus-Off Management总线自动离线管理Automatic Wake-Up Mode自动唤醒模式Automatic Retransmission自动重发Receive Fifo Locked Mode接收Fifo锁定模式Transmit Fifo Priority发送Fifo优先级Advanced Parameters先进的参数 Operating Mode操作模式 6、KeilMDK软件编写 6.1、CAN相关函数 CAN_TxHeaderTypeDef g_can1_txheader; /* CAN发送结构体 */ CAN_RxHeaderTypeDef g_can1_rxheader; /* CAN接收结构体 */ CAN_HandleTypeDef hcan1; // CAN控制句柄/* CAN1 init function */ void MX_CAN1_Init(void) {hcan1.Instance CAN1;hcan1.Init.Prescaler 4; /* 分频系数 */ hcan1.Init.Mode CAN_MODE_LOOPBACK; /* 工作模式设置 环回模式:自发自收 */hcan1.Init.SyncJumpWidth CAN_SJW_1TQ; /* 重新同步跳跃宽度 */hcan1.Init.TimeSeg1 CAN_BS1_9TQ; /* 时间段1 */hcan1.Init.TimeSeg2 CAN_BS2_8TQ; /* 时间段2 */hcan1.Init.TimeTriggeredMode DISABLE; /* 禁止时间触发通信模式 */hcan1.Init.AutoBusOff DISABLE; /* 禁止自动离线管理 */hcan1.Init.AutoWakeUp DISABLE; /* 禁止自动唤醒 */hcan1.Init.AutoRetransmission DISABLE; /* 禁止自动重发 */hcan1.Init.ReceiveFifoLocked DISABLE; /* 禁止接收FIFO锁定 */hcan1.Init.TransmitFifoPriority DISABLE; /* 禁止发送FIFO优先级 */if (HAL_CAN_Init(hcan1) ! HAL_OK){Error_Handler();}}void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle) {GPIO_InitTypeDef GPIO_InitStruct {0};if(canHandle-InstanceCAN1){/* USER CODE BEGIN CAN1_MspInit 0 *//* USER CODE END CAN1_MspInit 0 *//* CAN1 clock enable */__HAL_RCC_CAN1_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/**CAN1 GPIO ConfigurationPA11 ------ CAN1_RXPA12 ------ CAN1_TX*/GPIO_InitStruct.Pin GPIO_PIN_11|GPIO_PIN_12;GPIO_InitStruct.Mode GPIO_MODE_AF_PP;GPIO_InitStruct.Pull GPIO_NOPULL;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate GPIO_AF9_CAN1;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);/* USER CODE BEGIN CAN1_MspInit 1 *//* USER CODE END CAN1_MspInit 1 */} }/* **功能:CAN过滤器配置 **参数:无 **返回值:无*/ void can_filter_config(void) {CAN_FilterTypeDef can_filterconfig;/* 过滤器是接收所有报文不筛选 */can_filterconfig.FilterMode CAN_FILTERMODE_IDMASK; /* 过滤器模式标识符掩码模式(屏蔽位模式)*/can_filterconfig.FilterScale CAN_FILTERSCALE_32BIT; /* 过滤器位宽32位位宽 *///STID[10:3] STID[2:0] EXID[17:13] EXID[12:5] EXID[4:0] IDE RTR 0can_filterconfig.FilterIdHigh 0; /* ID高字节 */ can_filterconfig.FilterIdLow 0; /* ID低字节 */can_filterconfig.FilterMaskIdHigh 0; /* 掩码高字节 */can_filterconfig.FilterMaskIdLow 0; /* 掩码低字节 */can_filterconfig.FilterBank 0; /* 选择过滤器组 */can_filterconfig.FilterFIFOAssignment CAN_FilterFIFO0; /* 过滤器关联FIFO */can_filterconfig.FilterActivation CAN_FILTER_ENABLE; /* 过滤器使能 */can_filterconfig.SlaveStartFilterBank 14;HAL_CAN_ConfigFilter(hcan1, can_filterconfig);}/* 发送消息数据函数 */ void can_send_message(uint32_t id, uint8_t *buf, uint8_t len) {uint32_t tx_mail CAN_TX_MAILBOX0; /* 发送邮箱 */g_can1_txheader.ExtId id; /* 扩展标识符 */g_can1_txheader.DLC len; /* 数据长度 */g_can1_txheader.IDE CAN_ID_EXT; /* 帧格式标准帧或扩展帧 */g_can1_txheader.RTR CAN_RTR_DATA; /* 帧类型数据帧或远程帧 */HAL_CAN_AddTxMessage(hcan1, g_can1_txheader, buf, tx_mail);// 等待发送完成while(HAL_CAN_GetTxMailboxesFreeLevel(hcan1) ! 3); }/* 接收数据函数 */ uint8_t can_receive_message(uint8_t *buf) {if (HAL_CAN_GetRxFifoFillLevel(hcan1, CAN_RX_FIFO0) 0){return 0;}HAL_CAN_GetRxMessage(hcan1, CAN_RX_FIFO0, g_can1_rxheader, buf);// 返回接收数据长度return g_can1_rxheader.DLC; } 6.2、main.c部分代码 #include can.hint main(void) {/* USER CODE BEGIN 1 */uint8_t can_sen_buf[8] {0, 1, 2, 3, 4, 5, 6, 7}; // can发送数据uint8_t can_rec_len 0; // can接收数据长度uint8_t can_rec_buf[8] {0}; // can接收数据缓冲区MX_CAN1_Init();/* USER CODE BEGIN 2 */// 1、已经使能CAN时钟和初始化CAN// 2、配置CAN接收过滤器can_filter_config();// 3、启动CAN设备HAL_CAN_Start(hcan1);while (1){printf(hello world\r\n);can_send_message(0xF0000000, can_sen_buf, 8);can_rec_len can_receive_message(can_rec_buf);if (can_rec_len){for (uint8_t i 0; i can_rec_len; i){printf(%x ,can_rec_buf[i]);}printf(\r\n);}} } 6.3、完整工程下载地址 (1)完整工程存储再码云。 (2)STM32_CSDN: CSDN中STM32专栏的所有示例代码
http://www.pierceye.com/news/113637/

相关文章:

  • 双井做网站的公司app开发和网站开发价格
  • 电梯企业网站制作中山网站建设电话
  • 做网站推广哪些跨境电商平台企业
  • 域名注册网站推荐方案模板
  • 亚运村网站建设北京工商注册官网
  • sql2005做网站书店网站建设人员分配
  • 工商局网站怎么做股东实名认证石家庄网站建设公司怎么样
  • 做公众号的模版的网站国内网站做国外服务器
  • 做国际网站的上海高端网站公司wordpress 4.9.6 下载
  • 学校集约网站建设最牛餐饮营销手段
  • wordpress影视站网站太花哨
  • 青岛 机械 中企动力提供网站建设小说网站怎么做空间小
  • 通江县网站建设做网站到八方资源网怎么样
  • 国家网站建设ssh架构jsp网站开发
  • 浦东新区手机网站设计网络营销做得好的产品
  • 浙江市建设网站市场监督管理局电话举报电话
  • 企业网站的建设的功能定位菏泽百度推广公司电话
  • linux系统怎么做网站女生去住建局好不好
  • 自己搭建环境建设网站网站开发温州
  • 下沙做网站软件erp系统的主要功能
  • 郑州网站建设专家最新手机排行榜2021
  • 宠物店网站建设策划书重庆网站建设 红旗河沟
  • 一般网站自己可以做播放器吗最简单的一个网站开发
  • 网站的开发商务网站安全方案设计
  • 如何建立网站教材漳诈网站建设
  • 开家网站设计公司广州网站建设app开发
  • 建站服务公司网站源码成都游戏外包公司排名
  • 呼伦贝尔网站建设呼伦贝尔astro wordpress
  • 做网站需要好多钱专业制作广告字
  • 网站建设的需要是什么seo营销方案