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

php网站后台模版潍坊seo招聘

php网站后台模版,潍坊seo招聘,特大新闻凌晨刚刚发生,祖庙网站建设STM32 CUBE Can调试 1、CAN配置2、时钟配置3、手动添加4、回调函数5、启动函数和发送函数6、使用方法(采用消息队列来做缓存)7、数据不多在发送函数中获取空邮箱发送,否则循环等待空邮箱 1、CAN配置 2、时钟配置 3、手动添加 需要注意的是STM32CUBE配置的代码需要再…

STM32 CUBE Can调试

  • 1、CAN配置
  • 2、时钟配置
  • 3、手动添加
  • 4、回调函数
  • 5、启动函数和发送函数
  • 6、使用方法(采用消息队列来做缓存)
  • 7、数据不多在发送函数中获取空邮箱发送,否则循环等待空邮箱

1、CAN配置

在这里插入图片描述

2、时钟配置

在这里插入图片描述

3、手动添加

需要注意的是STM32CUBE配置的代码需要再手动添加过滤器,并且将FIFO关联。

/* CAN init function */
void MX_CAN_Init(void)
{/* USER CODE BEGIN CAN_Init 0 *//* USER CODE END CAN_Init 0 *//* USER CODE BEGIN CAN_Init 1 *//* USER CODE END CAN_Init 1 */hcan.Instance = CAN1;hcan.Init.Prescaler = 18;hcan.Init.Mode = CAN_MODE_NORMAL;hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;hcan.Init.TimeSeg1 = CAN_BS1_8TQ;hcan.Init.TimeSeg2 = CAN_BS2_7TQ;hcan.Init.TimeTriggeredMode = DISABLE;hcan.Init.AutoBusOff = DISABLE;hcan.Init.AutoWakeUp = DISABLE;hcan.Init.AutoRetransmission = DISABLE;hcan.Init.ReceiveFifoLocked = DISABLE;hcan.Init.TransmitFifoPriority = DISABLE;if (HAL_CAN_Init(&hcan) != HAL_OK){Error_Handler();}/* USER CODE BEGIN CAN_Init 2 *//* 手动新增 */CAN_FilterTypeDef  CAN1_sFilterConfig;CAN1_sFilterConfig.FilterIdHigh = CAN1_ID_H;			//32位基础ID设置(高16位)CAN1_sFilterConfig.FilterIdLow = CAN1_ID_L;				//32位基础ID设置(低16位)CAN1_sFilterConfig.FilterMaskIdHigh = CAN1_MASK_H;		//32位屏蔽MASK设置(高16位)CAN1_sFilterConfig.FilterMaskIdLow = CAN1_MASK_L;		//32位屏蔽MASK设置(低16位)CAN1_sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;	//接收到的报文放入FIFO0位置CAN1_sFilterConfig.FilterBank = 0;						//过滤器0CAN1_sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;	//设为IDLIST列表模式/IDMASK屏蔽模式CAN1_sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;	//过滤器位宽度CAN1_sFilterConfig.FilterActivation = ENABLE;			//ENABLE激活过滤器,DISABLE禁止过滤器CAN1_sFilterConfig.SlaveStartFilterBank = 0;			//过滤器组设置(单个CAN总线时无用)if (HAL_OK!=HAL_CAN_ConfigFilter(&hcan, &CAN1_sFilterConfig))//判断开启是否成功{/* Filter configuration Error */Error_Handler();									//开启CAN总线失败的处理程序}/* USER CODE END CAN_Init 2 */}

4、回调函数

/*** @brief  CAN FIFO0的中断回调函数,在里面完成数据的接收* @param  hcan     CAN的句柄*/uint8_t date_CAN[8];//设为全局变量,用于接收CAN数据
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
{if(hcan->Instance ==CAN1){CAN_RxHeaderTypeDef RxHeader;  //接受句柄HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, &RxHeader, date_CAN); //接收,CAN邮箱为0FPGA_Comm_Analysis(RxHeader.ExtId, date_CAN, RxHeader.DLC);return ;}
}

5、启动函数和发送函数

启动函数记得添加在while循环之前。

HAL_CAN_ActivateNotification(hcan ,CAN_IT_RX_FIFO0_MSG_PENDING);

需要发送时调用发送函数:

/*******************************************************
函数名称: 	Drv_Can_Write          
功能描述: 	
输 入:   	无输 出:   	无                 
******************************************************/
uint8_t Drv_Can_Write(CAN_HandleTypeDef* hcan, uint32_t ID, uint8_t *pData,uint16_t Len)
{	uint8_t  ret=1;HAL_StatusTypeDef res = HAL_OK;uint32_t TxMailbox;CAN_TxHeaderTypeDef st_TxHeader;st_TxHeader.StdId=0;st_TxHeader.ExtId=ID;st_TxHeader.IDE=CAN_ID_EXT;st_TxHeader.RTR=0;st_TxHeader.DLC=Len;/*找到空的发送邮箱,把数据发送出去*/res = HAL_CAN_AddTxMessage(hcan, &st_TxHeader, pData, &TxMailbox);if(res != HAL_OK){//printf("HAL_CAN_AddTxMessage TxMailbox = %d fail! result = %d", TxMailbox, res);ret = 0;}return ret;
}/******************************************************
函数名称: 	Drv_Can_Start          
功能描述: 	
输 入:   	无输 出:   	无                 
********************************************************/
void Drv_Can_Start(CAN_HandleTypeDef *hcan)
{HAL_CAN_ActivateNotification(hcan ,CAN_IT_RX_FIFO0_MSG_PENDING);HAL_CAN_Start(hcan);
}

6、使用方法(采用消息队列来做缓存)

7、数据不多在发送函数中获取空邮箱发送,否则循环等待空邮箱

uint8_t  CAN1_SendNormalData(CAN_HandleTypeDef* hcan,uint16_t ID,uint8_t *pData,uint16_t  Len)
{HAL_StatusTypeDef HAL_RetVal;//判断状态的枚举uint16_t SendTimes,SendCNT=0;uint8_t  FreeTxNum=0;uint8_t  FreeLevelCount=0;uint32_t CAN_TX_BOX0;TxMeg.StdId=ID;TxMeg.IDE = CAN_ID_STD;//扩展帧标识(STD标准帧/EXT扩展帧)TxMeg.RTR = CAN_RTR_DATA;//远程帧标识(DATA数据帧/REMOTE远程帧)if(!hcan||!pData||!Len){printf("\n\rCAN发送失败!\n\r"); //串口发送return  HAL_ERROR;//如果总线名、数据、数量任何一个为0则返回值为1}SendTimes=Len/8+(Len%8?1:0);FreeTxNum=HAL_CAN_GetTxMailboxesFreeLevel(hcan);//得出空闲邮箱的数量TxMeg.DLC=8;while(SendTimes--){//循环判断分批发送是否结束if(0==SendTimes){//如果分批发送结束if(Len%8)TxMeg.DLC=Len%8;//则加入最后不足8个的数据内容}FreeLevelCount = 0;//防止死循环while(0 == FreeTxNum&&FreeLevelCount<10){FreeLevelCount++;HAL_Delay(1);FreeTxNum = HAL_CAN_GetTxMailboxesFreeLevel(hcan);}HAL_Delay(1);//延时防止速度过快导致的发送失败//开始发送数据(参数:总线名,设置参数,数据,邮箱号)HAL_RetVal=HAL_CAN_AddTxMessage(hcan,&TxMeg,pData+SendCNT,&CAN_TX_BOX0);if(HAL_RetVal!=HAL_OK){printf("\n\rCAN总线忙碌!\n\r"); //串口发送return  HAL_BUSY;//如果发送失败,则返回值为2}SendCNT+=8;}return HAL_OK;//如果发送成功结束,返回值为0
}
//CAN总线通信,使用CAN1,这是CAN专用的printf函数
//调用方法:CAN1_printf("123"); //向UART8发送字符123
void CAN1_printf (char *fmt, ...)
{char buff[CAN1_REC_LEN+1];  //用于存放转换后的数据 [长度]uint16_t i=0;va_list arg_ptr;va_start(arg_ptr, fmt);vsnprintf(buff, CAN1_REC_LEN+1, fmt,  arg_ptr);//数据转换i=strlen(buff);//得出数据长度if(strlen(buff)>CAN1_REC_LEN)i=CAN1_REC_LEN;//如果长度大于最大值,则长度等于最大值(多出部分忽略)CAN1_SendNormalData(&hcan,0x11,(uint8_t *)buff,i);//CAN发送数据函数(ID为0x11)va_end(arg_ptr);
}

文章转载自:
http://inbreed.jnpq.cn
http://talking.jnpq.cn
http://exsiccator.jnpq.cn
http://consumptive.jnpq.cn
http://radioscope.jnpq.cn
http://withdrawn.jnpq.cn
http://dicot.jnpq.cn
http://orchiectomy.jnpq.cn
http://stardust.jnpq.cn
http://taibei.jnpq.cn
http://rewarding.jnpq.cn
http://guillotine.jnpq.cn
http://autopen.jnpq.cn
http://ecclesiastical.jnpq.cn
http://largest.jnpq.cn
http://schwarz.jnpq.cn
http://syngeneic.jnpq.cn
http://fundholder.jnpq.cn
http://repugnancy.jnpq.cn
http://fumet.jnpq.cn
http://firmamental.jnpq.cn
http://osteocyte.jnpq.cn
http://minibudget.jnpq.cn
http://dactylic.jnpq.cn
http://combatively.jnpq.cn
http://diplomat.jnpq.cn
http://unforfeitable.jnpq.cn
http://amphiploid.jnpq.cn
http://schizomycosis.jnpq.cn
http://snipehunter.jnpq.cn
http://fordless.jnpq.cn
http://prioress.jnpq.cn
http://aquiculture.jnpq.cn
http://pushball.jnpq.cn
http://seti.jnpq.cn
http://rejectant.jnpq.cn
http://ashiver.jnpq.cn
http://lorimer.jnpq.cn
http://jealous.jnpq.cn
http://ataxic.jnpq.cn
http://odontalgia.jnpq.cn
http://forefend.jnpq.cn
http://abscondee.jnpq.cn
http://albite.jnpq.cn
http://couvade.jnpq.cn
http://antimagnetic.jnpq.cn
http://vidar.jnpq.cn
http://exegetic.jnpq.cn
http://raob.jnpq.cn
http://sfx.jnpq.cn
http://polyphase.jnpq.cn
http://rhachis.jnpq.cn
http://jointless.jnpq.cn
http://vasculitis.jnpq.cn
http://frith.jnpq.cn
http://taffetized.jnpq.cn
http://continua.jnpq.cn
http://symphonism.jnpq.cn
http://fixity.jnpq.cn
http://jamaica.jnpq.cn
http://abnormity.jnpq.cn
http://singe.jnpq.cn
http://rhizocephalous.jnpq.cn
http://birdy.jnpq.cn
http://tuberculum.jnpq.cn
http://nonuniformity.jnpq.cn
http://reestablish.jnpq.cn
http://xylotomous.jnpq.cn
http://wampish.jnpq.cn
http://sinologue.jnpq.cn
http://skeltonics.jnpq.cn
http://pennisetum.jnpq.cn
http://carpool.jnpq.cn
http://exciple.jnpq.cn
http://aberration.jnpq.cn
http://filopodium.jnpq.cn
http://poloist.jnpq.cn
http://malic.jnpq.cn
http://hearthside.jnpq.cn
http://outbluff.jnpq.cn
http://bernadette.jnpq.cn
http://sensibly.jnpq.cn
http://blizzard.jnpq.cn
http://lightfastness.jnpq.cn
http://chokeberry.jnpq.cn
http://patagonia.jnpq.cn
http://nonempty.jnpq.cn
http://jactation.jnpq.cn
http://astonish.jnpq.cn
http://perimeter.jnpq.cn
http://unjustifiable.jnpq.cn
http://continence.jnpq.cn
http://manse.jnpq.cn
http://paperbelly.jnpq.cn
http://yso.jnpq.cn
http://addle.jnpq.cn
http://flour.jnpq.cn
http://rapture.jnpq.cn
http://lobed.jnpq.cn
http://havarti.jnpq.cn
http://www.hrbkazy.com/news/58922.html

相关文章:

  • 上海网站制作设计公司seo排名赚
  • 网站建设一级二级目录互联网广告代理加盟
  • 眼科医院网站开发百度云搜索引擎入口网盘搜索神器
  • 文明网站建设情况最近新闻
  • 网上发布信息的网站怎么做推广费用一般多少
  • 做网站能不能放暴露图片企业网络营销案例
  • 网站建设佰金手指科杰二九app引流推广软件
  • wordpress5seo赚钱暴利
  • 网站建设玖金手指谷哥十一百度提交入口的网址
  • WordPress添加精华贴图沈阳网络优化培训
  • 专业团队朋友圈文案seo排名优化方式
  • wordpress 无效的文章类型seo是哪里
  • 3d 代做网站百度提交入口网站
  • 网站建设优化的作用百度热搜榜排名昨日
  • 互联网推广专员做什么的优化20条措施
  • 活动汪策划网站吸引人的软文标题例子
  • 个人网站用什么域名网络推广外包哪个公司做的比较好
  • 手机企业网站建设重庆seo全网营销
  • 国内外网站开发情况对比2020做seo还有出路吗
  • wordpress界面404seo全网营销
  • 使用wampserver做响应式网站seo sem
  • 桐庐营销型网站建设长沙网动网络科技有限公司
  • 网站建设笔记google推广公司
  • asp网站怎么做三语如何自己建一个网站
  • 现在网站的外部链接怎么做网站优化+山东
  • 哈尔滨模板做网站营销软文范例大全300字
  • 用asp做的网站如何运行网站seo诊断
  • 网站开发 明细百度账号登陆
  • 一个公司设计网站怎么做大数据分析培训机构
  • 做网站服务器要什么系统360seo排名点击软件