当前位置: 首页> 游戏> 网游 > 国家安全部领导_贷款app定制开发_抖音seo优化排名_百度应用中心

国家安全部领导_贷款app定制开发_抖音seo优化排名_百度应用中心

时间:2025/7/9 12:23:45来源:https://blog.csdn.net/s2014201506/article/details/140534089 浏览次数:0次
国家安全部领导_贷款app定制开发_抖音seo优化排名_百度应用中心

1、HAL_StatusTypeDef HAL_FDCAN_Init (FDCAN_HandleTypeDef * hfdcan)

  FDCAN_HandleTypeDef FDCAN1_Handler;FDCAN1_Handler.Instance=FDCAN1;FDCAN1_Handler.Init.FrameFormat=FDCAN_FRAME_CLASSIC;            //传统模式FDCAN1_Handler.Init.Mode=FDCAN_MODE_NORMAL;                     //标准测试FDCAN1_Handler.Init.AutoRetransmission=DISABLE;                 //关闭自动重传FDCAN1_Handler.Init.TransmitPause=DISABLE;                      //关闭传输暂停FDCAN1_Handler.Init.ProtocolException=DISABLE;                  //关闭协议异常处理FDCAN1_Handler.Init.NominalPrescaler=10;                        //分频系数FDCAN1_Handler.Init.NominalSyncJumpWidth=8;                    //重新同步跳跃宽度FDCAN1_Handler.Init.NominalTimeSeg1=31;                        //tsg1范围:2~256FDCAN1_Handler.Init.NominalTimeSeg2=8;                         //tsg2范围:2~128FDCAN1_Handler.Init.MessageRAMOffset=0;                         //信息RAM偏移FDCAN1_Handler.Init.StdFiltersNbr=0;                            //标准信息ID滤波器编号FDCAN1_Handler.Init.ExtFiltersNbr=0;                            //扩展信息ID滤波器编号FDCAN1_Handler.Init.RxFifo0ElmtsNbr=1;                          //接收FIFO0元素编号FDCAN1_Handler.Init.RxFifo0ElmtSize=FDCAN_DATA_BYTES_8;         //接收FIFO0元素大小:8字节FDCAN1_Handler.Init.RxBuffersNbr=0;                             //接收缓冲编号FDCAN1_Handler.Init.TxEventsNbr=0;                              //发送事件编号FDCAN1_Handler.Init.TxBuffersNbr=0;                             //发送缓冲编号FDCAN1_Handler.Init.TxFifoQueueElmtsNbr=1;                      //发送FIFO序列元素编号FDCAN1_Handler.Init.TxFifoQueueMode=FDCAN_TX_FIFO_OPERATION;    //发送FIFO序列模式FDCAN1_Handler.Init.TxElmtSize=FDCAN_DATA_BYTES_8;              //发送大小:8字节if(HAL_FDCAN_Init(&FDCAN1_Handler)!=HAL_OK) return 1;           //初始化FDCAN

2、HAL_StatusTypeDef HAL_FDCAN_DeInit (FDCAN_HandleTypeDef * hfdcan)

 复位FDCAN配置。

FDCAN_HandleTypeDef FDCAN1_Handler;
HAL_FDCAN_DeInit(&FDCAN1_Handler);                              

3、void HAL_FDCAN_MspInit (FDCAN_HandleTypeDef * hfdcan)

void HAL_FDCAN_MspInit(FDCAN_HandleTypeDef* hfdcan)
{GPIO_InitTypeDef GPIO_Initure;RCC_PeriphCLKInitTypeDef FDCAN_PeriphClk;__HAL_RCC_FDCAN_CLK_ENABLE();                   //使能FDCAN1时钟__HAL_RCC_GPIOA_CLK_ENABLE();			        //开启GPIOA时钟//FDCAN1时钟源配置为PLL1QFDCAN_PeriphClk.PeriphClockSelection=RCC_PERIPHCLK_FDCAN;FDCAN_PeriphClk.FdcanClockSelection=RCC_FDCANCLKSOURCE_PLL;HAL_RCCEx_PeriphCLKConfig(&FDCAN_PeriphClk);GPIO_Initure.Pin=GPIO_PIN_11|GPIO_PIN_12;       //PA11,12GPIO_Initure.Mode=GPIO_MODE_AF_PP;              //推挽复用GPIO_Initure.Pull=GPIO_PULLUP;                  //上拉GPIO_Initure.Speed=GPIO_SPEED_FREQ_MEDIUM;      //超高速GPIO_Initure.Alternate=GPIO_AF9_FDCAN1;         //复用为CAN1HAL_GPIO_Init(GPIOA,&GPIO_Initure);             //初始化}

CAN初始化回调配置,配置GPIO口和时钟 ,被函数1自动调用。

4、void HAL_FDCAN_MspDeInit (FDCAN_HandleTypeDef * hfdcan)

void HAL_FDCAN_MspDeInit (FDCAN_HandleTypeDef * hfdcan)

5、HAL_StatusTypeDef HAL_FDCAN_EnterPowerDownMode (FDCAN_HandleTypeDef * hfdcan)

进入休眠模式

FDCAN_HandleTypeDef FDCAN1_Handler;HAL_FDCAN_EnterPowerDownMode ( &FDCAN1_Handler);

6、HAL_StatusTypeDef HAL_FDCAN_ExitPowerDownMode (FDCAN_HandleTypeDef * hfdcan)

FDCAN_HandleTypeDef FDCAN1_Handler;
HAL_FDCAN_ExitPowerDownMode (&FDCAN1_Handler);

退出休眠模式。

7、

HAL_StatusTypeDef HAL_FDCAN_ConfigFilter (FDCAN_HandleTypeDef * hfdcan, FDCAN_FilterTypeDef * sFilterConfig)
配置滤波器。
    FDCAN_HandleTypeDef FDCAN1_Handler;FDCAN_FilterTypeDef FDCAN1_RXFilter;FDCAN1_RXFilter.IdType=FDCAN_STANDARD_ID;                       //标准IDFDCAN1_RXFilter.FilterIndex=0;                                  //滤波器索引                   FDCAN1_RXFilter.FilterType=FDCAN_FILTER_MASK;                   //滤波器类型FDCAN1_RXFilter.FilterConfig=FDCAN_FILTER_TO_RXFIFO0;           //过滤器0关联到FIFO0  FDCAN1_RXFilter.FilterID1=0x0000;                               //32位IDFDCAN1_RXFilter.FilterID2=0x0000;                               //如果FDCAN配置为传统模式的话,这里是32位掩码HAL_FDCAN_ConfigFilter(&FDCAN1_Handler,&FDCAN1_RXFilter);

8、HAL_StatusTypeDef HAL_FDCAN_Start (FDCAN_HandleTypeDef * hfdcan)

开启FDCAN通信。

HAL_FDCAN_Start(&FDCAN1_Handler);                               //开启FDCAN

9、HAL_StatusTypeDef HAL_FDCAN_AddMessageToTxFifoQ(FDCAN_HandleTypeDef *hfdcan, FDCAN_TxHeaderTypeDef *pTxHeader, uint8_t *pTxData)

重要函数 使用FDCAN 发送数据。

第二个输入参数需要提供一个FDCAN_TxHeaderTypeDef类型的指针,此结构体类型用于封装CAN发送数据之外的其他必要信息。第三个参数是要发送的数据。

在以前的HAL库中 两个参数合并在了一起,现在拆分成了两部分。

FDCAN_TxHeaderTypeDef FDCAN1_TxHeader;
void FDCAN1_Send_Msg()
{	uint8_t msg[8] = {1,2,3,4,5,6,7,8};FDCAN1_TxHeader.Identifier=  0x1234;                       //32位IDFDCAN1_TxHeader.IdType=FDCAN_STANDARD_ID;                  //标准IDFDCAN1_TxHeader.TxFrameType=FDCAN_DATA_FRAME;              //数据帧FDCAN1_TxHeader.DataLength=8;                              //数据长度FDCAN1_TxHeader.ErrorStateIndicator=FDCAN_ESI_ACTIVE;            FDCAN1_TxHeader.BitRateSwitch=FDCAN_BRS_OFF;               //关闭速率切换FDCAN1_TxHeader.FDFormat=FDCAN_CLASSIC_CAN;                //传统的CAN模式FDCAN1_TxHeader.TxEventFifoControl=FDCAN_NO_TX_EVENTS;     //无发送事件FDCAN1_TxHeader.MessageMarker=0;                           HAL_FDCAN_AddMessageToTxFifoQ(&FDCAN1_Handler,&FDCAN1_TxHeader,msg);
}

10、HAL_StatusTypeDef HAL_FDCAN_GetRxMessage(FDCAN_HandleTypeDef *hfdcan, uint32_t RxLocation, FDCAN_RxHeaderTypeDef *pRxHeader, uint8_t *pRxData)

重要函数,使用FDCAN 接收数据

同函数9一样,接收数据的时候也需要提供一个FDCAN_RxHeaderTypeDef   类型的指针。相比于FDCAN_TxHeaderTypeDef 类型的数据 ,此处声明的变量不需要配置参数,只需要读取内部数据即可。

参数三是数据返回的指针。


uint8_t buf[24];
FDCAN_RxHeaderTypeDef FDCAN1_RxHeader;HAL_FDCAN_GetRxMessage(&FDCAN1_Handler,FDCAN_RX_FIFO0,&FDCAN1_RxHeader,buf);

9、HAL_StatusTypeDef HAL_FDCAN_ActivateNotification(FDCAN_HandleTypeDef *hfdcan, uint32_t ActiveITs, uint32_t BufferIndexes)

开启FDCAN中断。

HAL_FDCAN_ActivateNotification(&FDCAN1_Handler,FDCAN_IT_RX_FIFO0_NEW_MESSAGE,0);
//开启FIFO 0 接收中断

10、void FDCAN1_IT0_IRQHandler(void)
FDCAN 中断服务函数

void FDCAN1_IT0_IRQHandler(void)
{HAL_FDCAN_IRQHandler(&FDCAN1_Handler);
}

11、void HAL_FDCAN_RxFifo0Callback (FDCAN_HandleTypeDef * hfdcan, uint32_t RxFifo0ITs)

FDCAN 接收中断的回调函数,只处理FIFO0的接收数据中断。

void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs)
{u8 i=0;u8 rxdata[8];if((RxFifo0ITs&FDCAN_IT_RX_FIFO0_NEW_MESSAGE)!=RESET)   //FIFO1新数据中断{//提取FIFO0中接收到的数据HAL_FDCAN_GetRxMessage(hfdcan,FDCAN_RX_FIFO0,&FDCAN1_RxHeader,rxdata);printf("id:%#x\r\n",FDCAN1_RxHeader.Identifier);printf("len:%d\r\n",FDCAN1_RxHeader.DataLength>>16);for(i=0;i<8;i++)printf("rxdata[%d]:%d\r\n",i,rxdata[i]);HAL_FDCAN_ActivateNotification(hfdcan,FDCAN_IT_RX_FIFO0_NEW_MESSAGE,0);}
}

关键字:国家安全部领导_贷款app定制开发_抖音seo优化排名_百度应用中心

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: