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

网站网页设计有哪些上海门户网站怎么登录

网站网页设计有哪些,上海门户网站怎么登录,网站开发制作价格,网站建设公司美工如何找一、所用材料#xff1a; STM32F103C6T6最小系统板 STM32CUBEMX#xff08;HAL库软件#xff09; MDK5 串口调试助手 二、所学内容#xff1a; 初步学习如何使用STM32的CAN通讯功能#xff0c;在本章节主要达到板内CAN通讯的效果#xff0c;即32发送CAN信息再在CAN接收…一、所用材料 STM32F103C6T6最小系统板 STM32CUBEMXHAL库软件 MDK5 串口调试助手 二、所学内容 初步学习如何使用STM32的CAN通讯功能在本章节主要达到板内CAN通讯的效果即32发送CAN信息再在CAN接收中断中用串口打印出来。 三、CUBEMX配置 第一步老三件套-RCC,SYS,时钟树配置 第二步串口配置 第三步CAN配置 关键步骤 波特率设置1M bit/s具体配置如下图TEST MODE - Loopback打开接收中断RX0 四、MDK5配置 一、can.h头文件配置 /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __CAN_H__ #define __CAN_H__#ifdef __cplusplus extern C { #endif/* Includes ------------------------------------------------------------------*/ #include main.h/* USER CODE BEGIN Includes *//* USER CODE END Includes */extern CAN_HandleTypeDef hcan;/* USER CODE BEGIN Private defines *//* USER CODE END Private defines */void MX_CAN_Init(void);/* USER CODE BEGIN Prototypes */ void CANFilter_Config(void); void CAN1_Send_Test(void); void CAN_Start_Init(void); void CAN1_Send(uint8_t* cdata); /* USER CODE END Prototypes */#ifdef __cplusplus } #endif#endif /* __CAN_H__ */ 二、can.c源文件配置 /* Includes ------------------------------------------------------------------*/ #include can.h/* USER CODE BEGIN 0 */ #include stdio.h #include usart.h #include main.h static CAN_TxHeaderTypeDef TxMessage; //CAN发送的消息的消息头 static CAN_RxHeaderTypeDef RxMessage; //CAN接收的消息的消息头 /* USER CODE END 0 */CAN_HandleTypeDef hcan;/* CAN init function */ void MX_CAN_Init(void) {hcan.Instance CAN1;hcan.Init.Prescaler 4;hcan.Init.Mode CAN_MODE_LOOPBACK;hcan.Init.SyncJumpWidth CAN_SJW_1TQ;hcan.Init.TimeSeg1 CAN_BS1_5TQ;hcan.Init.TimeSeg2 CAN_BS2_3TQ;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 *//* USER CODE END CAN_Init 2 */}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();/**CAN GPIO ConfigurationPA11 ------ CAN_RXPA12 ------ CAN_TX*/GPIO_InitStruct.Pin GPIO_PIN_11;GPIO_InitStruct.Mode GPIO_MODE_INPUT;GPIO_InitStruct.Pull GPIO_NOPULL;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);GPIO_InitStruct.Pin GPIO_PIN_12;GPIO_InitStruct.Mode GPIO_MODE_AF_PP;GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOA, GPIO_InitStruct);/* CAN1 interrupt Init */HAL_NVIC_SetPriority(USB_LP_CAN1_RX0_IRQn, 0, 0);HAL_NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn);/* USER CODE BEGIN CAN1_MspInit 1 *//* USER CODE END CAN1_MspInit 1 */} }void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle) {if(canHandle-InstanceCAN1){/* USER CODE BEGIN CAN1_MspDeInit 0 *//* USER CODE END CAN1_MspDeInit 0 *//* Peripheral clock disable */__HAL_RCC_CAN1_CLK_DISABLE();/**CAN GPIO ConfigurationPA11 ------ CAN_RXPA12 ------ CAN_TX*/HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12);/* CAN1 interrupt Deinit */HAL_NVIC_DisableIRQ(USB_LP_CAN1_RX0_IRQn);/* USER CODE BEGIN CAN1_MspDeInit 1 *//* USER CODE END CAN1_MspDeInit 1 */} }/* USER CODE BEGIN 1 */ /******************* 接受信息过滤器 *******************/void CANFilter_Config(void) {CAN_FilterTypeDef sFilterConfig;sFilterConfig.FilterBank 0; //CAN过滤器编号范围0-27sFilterConfig.FilterMode CAN_FILTERMODE_IDMASK; //CAN过滤器模式掩码模式或列表模式sFilterConfig.FilterScale CAN_FILTERSCALE_32BIT; //CAN过滤器尺度16位或32位sFilterConfig.FilterIdHigh 0x000 5; //32位下存储要过滤ID的高16位sFilterConfig.FilterIdLow 0x0000; //32位下存储要过滤ID的低16位sFilterConfig.FilterMaskIdHigh 0x0000; //掩码模式下存储的是掩码sFilterConfig.FilterMaskIdLow 0x0000;sFilterConfig.FilterFIFOAssignment 0; //报文通过过滤器的匹配后存储到哪个FIFOsFilterConfig.FilterActivation ENABLE; //激活过滤器sFilterConfig.SlaveStartFilterBank 0;if (HAL_CAN_ConfigFilter(hcan, sFilterConfig) ! HAL_OK) {Error_Handler();}else{ printf(HAL_CAN_ConfigFilter(hcan, sFilterConfig) is HAL_OK\r\n); } } /******************* 中断接受 *******************/ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) {uint8_t data[8];HAL_StatusTypeDef status;status HAL_CAN_GetRxMessage(hcan, CAN_RX_FIFO0, RxMessage, data);if (HAL_OK status){ printf(---Data Receieve!\r\n);printf(RxMessage.StdId is %#x\r\n, RxMessage.StdId);printf(data[0] is 0x%02x\r\n, data[0]);printf(data[1] is 0x%02x\r\n, data[1]);printf(data[2] is 0x%02x\r\n, data[2]);printf(data[3] is 0x%02x\r\n, data[3]);printf(data[4] is 0x%02x\r\n, data[4]);printf(data[5] is 0x%02x\r\n, data[5]);printf(data[6] is 0x%02x\r\n, data[6]);printf(data[7] is 0x%02x\r\n, data[7]); printf(---\r\n); HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); } }/******************* 发送函数 *******************/ void CAN1_Send_Test(void) {uint32_t TxMailbox;uint8_t data[4] {0x01, 0x02, 0x03, 0x04};TxMessage.IDE CAN_ID_STD; //设置ID类型TxMessage.StdId 0x111; //设置ID号TxMessage.RTR CAN_RTR_DATA; //设置传送数据帧TxMessage.DLC 4; //设置数据长度if (HAL_CAN_AddTxMessage(hcan, TxMessage, data, TxMailbox) ! HAL_OK){Error_Handler();} // else{ printf(HAL_CAN_AddTxMessage(hcan, TxMessage, data, TxMailbox) is HAL_OK\r\n); } }void CAN1_Send(uint8_t* cdata) {uint32_t TxMailbox;TxMessage.IDE CAN_ID_STD; //设置ID类型TxMessage.StdId 0x111; //设置ID号TxMessage.RTR CAN_RTR_DATA; //设置传送数据帧TxMessage.DLC 8; //设置数据长度 if (HAL_CAN_AddTxMessage(hcan, TxMessage, cdata, TxMailbox) ! HAL_OK){Error_Handler();} } /******************* CAN启动函数 *******************/ void CAN_Start_Init(void) {if (HAL_CAN_Start(hcan) ! HAL_OK) {Error_Handler();}else{ printf(HAL_CAN_Start(hcan) is HAL_OK\r\n); }/* 3. Enable CAN RX Interrupt */if (HAL_CAN_ActivateNotification(hcan, CAN_IT_RX_FIFO0_MSG_PENDING) ! HAL_OK) {Error_Handler();}else{ printf(HAL_CAN_ActivateNotification(hcan, CAN_IT_RX_FIFO0_MSG_PENDING) is HAL_OK\r\n); } } /* USER CODE END 1 */ 三、main.c文件配置 int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_CAN_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */CANFilter_Config();CAN_Start_Init();/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){CAN1_Send_Test();HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }四、串口打印结果 五、本文对应代码分享 https://download.csdn.net/download/qq_45854134/88522530
http://www.hkea.cn/news/14483540/

相关文章:

  • 专门做自驾游攻略的网站wordpress 图书
  • 网站正在建设中 英语翻译微信公众号做留言网站
  • 专业建站公司加盟帮别人做网站需要什么能力
  • 湖北做网站的公司上海一个人如何注册公司
  • 个人网站 平台贵州建设局网站
  • 毕业设计指导网站建设东莞广告公司东莞网站建设
  • 网站开发人员需要具备的能力wordpress无法设置中文字体
  • 淮安网站建设优化郑州建站软件
  • 英文网站推广工作嘉兴网络推广
  • pc端网站做移动适配微信微网站建设
  • 常州微信网站建设信息网站内部优化方法
  • 网站推广平台排行公司网站制作商
  • 做暖网站社交网站开发语言
  • ftp 上传网站中小企业网贷平台
  • 建设教育协会培训网站廊坊网站建设招聘
  • 南宁哪个公司做网站建设应用程序安装下载
  • 建一个网站需要多少钱?个人网站 作品
  • 查询公司的网站备案做网站还有意义吗
  • 建湖做网站哪家公司好n127网推广
  • 星座 网站 建设凡客建站网站下载
  • 网站的ftp信息wordpress 顶端加代码
  • 网站程序代码商标logo设计生成器免费
  • 电子类 购物网站wordpress提问模块
  • 专业建站公司品牌没域名可以用wordpress么
  • 搭建网站要多少钱安康政务微平台公众号
  • 定制网站建设与运营案例代理办营业执照的公司
  • 肃宁网站制作价格电影网站域名需要备案
  • aspx网站架设宁波做网站优化哪家好
  • 订餐网站开发方案代刷网站推广全网最便宜
  • 公司门户网站怎么做定制网站建设哪家便宜