1、使用stm32cube生成CAN代码注意事项:

  a、需要手动配置CAN过滤器

{
CAN_FilterConfTypeDef sFilterConfig;
uint32_t filterID = (uint32_t)SysAddr<<23;
uint32_t filterMaskID = 0x7F800000; sFilterConfig.FilterNumber = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = (uint16_t)(filterID>>16);
sFilterConfig.FilterIdLow = filterID;
sFilterConfig.FilterMaskIdHigh = (uint16_t)(filterMaskID>>16);
sFilterConfig.FilterMaskIdLow = filterMaskID;
sFilterConfig.FilterFIFOAssignment = 0; //收到的报文放在FIFO 0里面
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.BankNumber = 14; if (HAL_CAN_ConfigFilter(&hcan, &sFilterConfig) != HAL_OK)
{
/* Filter configuration Error */
Error_Handler();
} filterID = 0x7F800000;
sFilterConfig.FilterNumber = 1;
sFilterConfig.FilterIdHigh = (uint16_t)(filterID>>16);
sFilterConfig.FilterIdLow = filterID; if (HAL_CAN_ConfigFilter(&hcan, &sFilterConfig) != HAL_OK)
{
/* Filter configuration Error */
Error_Handler();
}
}

  b、需要手动使能CAN FIFO接收中断

HAL_CAN_Receive_IT(&hcan, CAN_FIFO0);	//使能FIFO0接收中断

  c、需要手动初始化数据结构体

typedef struct
{
CanTxMsgTypeDef TxMsg;
CanRxMsgTypeDef RxMsg;
CanRxMsgTypeDef Rx1Msg;
}CAN_RxTxBufTypeDef; CAN_RxTxBufTypeDef CAN_RxTxBuf; void Can_DataRxTxInit(CAN_HandleTypeDef* hcan)
{
memset(&CAN_RxTxBuf, 0X00, sizeof(CAN_RxTxBuf)); hcan->pTxMsg = (CanTxMsgTypeDef *)&CAN_RxTxBuf.TxMsg;
hcan->pRxMsg = (CanRxMsgTypeDef *)&CAN_RxTxBuf.RxMsg;
hcan->pRx1Msg = (CanRxMsgTypeDef *)&CAN_RxTxBuf.Rx1Msg;
}

  d、每次接收中断完成后需要手动使能下一次接收中断

void USB_LP_CAN1_RX0_IRQHandler(void)
{
/* USER CODE BEGIN USB_LP_CAN1_RX0_IRQn 0 */
/* USER CODE END USB_LP_CAN1_RX0_IRQn 0 */
HAL_CAN_IRQHandler(&hcan);
HAL_CAN_Receive_IT(&hcan,CAN_FIFO0); /* USER CODE END USB_LP_CAN1_RX0_IRQn 1 */
}

  e、数据接收、发送与错误回调函数

void HAL_CAN_TxCpltCallback(CAN_HandleTypeDef* hcan);
void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan);
void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan);

2、使用STM32WB系列中间件STM32_WPAN(version5.1.0)

要使能WPAN BLE中间件,需要激活外设RTC、HSEM、RF,否则不能使用WPAN BLE中间件

其它的配置引用UM1718文档中的说明如下:

Then, an application type must be selected, it can be one among Transparent mode, Server profile, Router profile or Client profile.

Finally, the mode and other parameters relevant to this application type must be configured.

            BLE Server profile selection

            BLE Client profile selection

3、

stm32cube使用的更多相关文章

  1. 基于STM32Cube的脉冲输出

    方法一:定时器定时I/O反转生成脉冲波形 1.建立STM32Cube选择STM32F429,我使用的STM32F429-discovery开发板,晶振是8MHz,时钟配置为180M,这样定时器内部时钟 ...

  2. 基于STM32Cube的IIC主从通信

    1.建立STM32Cube工程,我使用的芯片是STM32F429,为了更简单的建立单独的IIC通信任务,我使用了FREERTOS,另外选择了RCC(系统时钟初始化),I2C1,I2C2(为了验证代码的 ...

  3. 基于STM32Cube的DAC数模转化

    1. STM32Cube配置 1.1 DAC配置   1.2 TIM6 配置 1.3 利用Cube产生工程程序,MDK打开软件       在主循环上添加语句:      HAL_TIM_Base_S ...

  4. 基于STM32Cube的ADC模数采样设计

    1.背景         此实验建立在STM32F429核心板基础上,对于深刻了解STM32Cube使用具有深刻意义.利用DMA进行ADC采样,具有速度快,极大减少CPU消耗的优势,对于数据采集系统具 ...

  5. [stm32F429-DISCO-HAL] 1.先说说关于stm32Cube的一些事情。然后,Start with it...

    目前,我觉得STM32CUBE最大的方便在于,可以使用STM32CubeMX软件来图形化配置外设.首先贴出官网的PDF,Getting started with STM32CubeF4 firmwar ...

  6. 使用STM32Cube在STM32F7开发板上实现SD+Freertos+Fatfs

    简介 最近项目中可能需要使用到SD卡,所以需要对SD卡的配置和使用调研,在配置过程中遇到了一些问题,在此记录一下. STM32Cube配置 Pinout 只需要注意绿色部分的设定 Clock配置 这里 ...

  7. MDK5 and STM32Cube

    D:\Workspace\........\RTE\Device>STM32CubeMX.exe -s project.script -tpl_path C:\Keil5\ARM\Pack\Ke ...

  8. ST推出新软件STM32Cube ,让STM32微控制器应用设计变得更容易、更快、更好用

    功能强大的STM32Cube 新软件平台由设计工具.中间件和硬件抽象层组成,让客户能够集中精力创新 意法半导体(STMicroelectronics,简称ST)针对STM32微控制器推出一套免费的功能 ...

  9. STM32CUBEMX入门学习笔记3:HAL库以及STM32CUBE相关资料

    微雪课堂:http://www.waveshare.net/study/article-629-1.html 之前的正点原子的例程资料 硬石科技stm32cube: 链接:https://pan.ba ...

随机推荐

  1. Merge git repo into branch of another repo

    git 两个repo merge You can't merge a repository into a branch. You can merge a branch from another rep ...

  2. php 操作 mysql 数据库常用方法集合

    参考: https://www.runoob.com/php/php-pdo.html https://www.cnblogs.com/feng18/p/6523646.html https://bl ...

  3. Centos 7 安装 Supervisor 及使用

    Supervisor官网链接:http://supervisord.org/installing.html 安装与设置开机启动: http://blog.csdn.net/fenglailea/art ...

  4. Codeforces Round #479 (Div. 3)题解

    CF首次推出div3给我这种辣鸡做,当然得写份博客纪念下 A. Wrong Subtraction time limit per test 1 second memory limit per test ...

  5. bzoj 1304 [CQOI 2009] 叶子的染色 - 动态规划

    题目传送门 快速的传送门 慢速的传送门 题目大意 给定一棵无根树,每个点可以染成黑色或者白色,第$i$叶节点到根的路径上最后有颜色的点必须为$c_{i}$(叶节点可以染色).问最少要染颜色的点的个数. ...

  6. ProgressDemo

    封装了下如下View滑动效果,类似网易的首页滑动效果. 详情见: https://github.com/VivienQin16/ProgressDemo

  7. QML的Window与ApplicationWindow

    ApplicationWindow需要导入QtQuick.Controls Window需要导入QtQuick.Window . 默认不可见,需要设置visible:true才可见. 主要区别就是Ap ...

  8. kubernets实战采坑1

    1.NLog.config失效,日志ElasticSearch的Index不匹配 <?xml version="1.0" encoding="utf-8" ...

  9. [转载]error while loading shared libraries的解決方法

    转自:https://blog.csdn.net/dumeifang/article/details/2963223 error while loading shared libraries的解決方法 ...

  10. 中文目录对 sublime text 有什么影响?

    用了这软件好几个月了,一直没出现问题.最近做精简时,发现一个奇怪的问题. 相同的配置,为什么两个程序表现得不一样? 难道是哪里的配置不一样? 难道是插件被我精简得太厉害了? 难道是插件有依赖文件被我删 ...