stm32cube使用
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使用的更多相关文章
- 基于STM32Cube的脉冲输出
方法一:定时器定时I/O反转生成脉冲波形 1.建立STM32Cube选择STM32F429,我使用的STM32F429-discovery开发板,晶振是8MHz,时钟配置为180M,这样定时器内部时钟 ...
- 基于STM32Cube的IIC主从通信
1.建立STM32Cube工程,我使用的芯片是STM32F429,为了更简单的建立单独的IIC通信任务,我使用了FREERTOS,另外选择了RCC(系统时钟初始化),I2C1,I2C2(为了验证代码的 ...
- 基于STM32Cube的DAC数模转化
1. STM32Cube配置 1.1 DAC配置 1.2 TIM6 配置 1.3 利用Cube产生工程程序,MDK打开软件 在主循环上添加语句: HAL_TIM_Base_S ...
- 基于STM32Cube的ADC模数采样设计
1.背景 此实验建立在STM32F429核心板基础上,对于深刻了解STM32Cube使用具有深刻意义.利用DMA进行ADC采样,具有速度快,极大减少CPU消耗的优势,对于数据采集系统具 ...
- [stm32F429-DISCO-HAL] 1.先说说关于stm32Cube的一些事情。然后,Start with it...
目前,我觉得STM32CUBE最大的方便在于,可以使用STM32CubeMX软件来图形化配置外设.首先贴出官网的PDF,Getting started with STM32CubeF4 firmwar ...
- 使用STM32Cube在STM32F7开发板上实现SD+Freertos+Fatfs
简介 最近项目中可能需要使用到SD卡,所以需要对SD卡的配置和使用调研,在配置过程中遇到了一些问题,在此记录一下. STM32Cube配置 Pinout 只需要注意绿色部分的设定 Clock配置 这里 ...
- MDK5 and STM32Cube
D:\Workspace\........\RTE\Device>STM32CubeMX.exe -s project.script -tpl_path C:\Keil5\ARM\Pack\Ke ...
- ST推出新软件STM32Cube ,让STM32微控制器应用设计变得更容易、更快、更好用
功能强大的STM32Cube 新软件平台由设计工具.中间件和硬件抽象层组成,让客户能够集中精力创新 意法半导体(STMicroelectronics,简称ST)针对STM32微控制器推出一套免费的功能 ...
- STM32CUBEMX入门学习笔记3:HAL库以及STM32CUBE相关资料
微雪课堂:http://www.waveshare.net/study/article-629-1.html 之前的正点原子的例程资料 硬石科技stm32cube: 链接:https://pan.ba ...
随机推荐
- Deep Learning for NLP
Deep Learning for NLP The First Paper Proposed Bi-LSTM+CRF 我认为,第一篇提出 Bi-LSTM+CRF 架构的文章是: Huang Z, Xu ...
- ldap集成rabbitmq
rabbitmq版本: 3.7.4 rabbitmq支持ldap需要开启插件: rabbitmq-plugins enable rabbitmq_auth_backend_ldap rab ...
- opencv学习之路(12)、图像滤波
一.图像滤波简介 二.方框滤波——boxFilter() #include<opencv2/opencv.hpp> using namespace cv; void main(){ Mat ...
- 回归Android之Android基础和小常识
Activity ,Service,Content Provider,BroadcastReceiver, Intent SQLite,Http,Fragement,Handle 1,Activity ...
- clnt_create: RPC: Program not registered
原因:[root@nfs nfs]# systemctl start nfs-utils 解决方法:[root@nfs nfs]# systemctl start nfs
- delete指针
是释放指针所指向的内存,而不是删除指针本身
- Django框架 (七) Django ORM模型
ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装
- P3979 遥远的国度
P3979 遥远的国度 思路 一开始我用这个函数得到左端点 int get_l(int x,int y) { if(top[x]==top[y]) return son[x]; int last=to ...
- Intellij IDEA 安装配置Gradle
1.安装 到官网链接下载最新的bin版本,解压到 D:\Program Files (x86)\JetBrains\IDEA Configuration And Cache\gradle 配置环境变量 ...
- Download and Installation of Kibana
下载以及安装 https://www.elastic.co/downloads/kibana 1.Download and unzip Kibana 2. Open config/kibana.yml ...