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

电子商务网站cms深圳培训手机网站建设

电子商务网站cms,深圳培训手机网站建设,网站建设的一些销售技巧,网站优化专家采集ADC、GPS经纬坐标、温湿度数据、大气压数据通过CAN方式发送给主设备端#xff0c;帧ID按照如下定义#xff1a; 我尼玛一个标准帧ID位数据是11位#xff0c;扩展帧才是111829位#xff0c;它说最开头的是四位是真类型#xff0c;并给我如下解释#xff1a; 它把帧的定…采集ADC、GPS经纬坐标、温湿度数据、大气压数据通过CAN方式发送给主设备端帧ID按照如下定义 我尼玛一个标准帧ID位数据是11位扩展帧才是111829位它说最开头的是四位是真类型并给我如下解释 它把帧的定义当成了字节2和字节3的拼接了(整体的报文识别码)对于STM32帧ID设置是直接赋值也就是它给我的帧ID需要左移5位才是实际帧ID。不多说直接上代码波特率500kbs! 初始化部分 void Can_Btl(u32 btl) {switch(btl){ case btl_5k :CAN_Mode_Init(CAN_SJW_2tq,CAN_BS1_6tq,CAN_BS2_4tq,600,CAN_Mode_Normal);break;case btl_10k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_5tq,CAN_BS2_3tq,400,CAN_Mode_Normal);break;case btl_20k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,300,CAN_Mode_Normal);break;case btl_25k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,240,CAN_Mode_Normal);break;case btl_40k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,150,CAN_Mode_Normal);break;case btl_50k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,120,CAN_Mode_Normal);break;case btl_62_5k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,96,CAN_Mode_Normal);break;case btl_80k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,75,CAN_Mode_Normal);break;case btl_100k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,60,CAN_Mode_Normal);break;case btl_125k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,48,CAN_Mode_Normal);break;case btl_200k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,30,CAN_Mode_Normal);break;case btl_250k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,24,CAN_Mode_Normal);break;case btl_400k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_5tq,CAN_BS2_3tq,10,CAN_Mode_Normal);break;case btl_500k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,12,CAN_Mode_Normal);break;case btl_666k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_4tq,CAN_BS2_4tq,6,CAN_Mode_Normal);break;case btl_800k :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_5tq,CAN_BS2_3tq,5,CAN_Mode_Normal);break;case btl_1M :CAN_Mode_Init(CAN_SJW_1tq,CAN_BS1_3tq,CAN_BS2_2tq,6,CAN_Mode_Normal);break;} } u8 CAN_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode) {GPIO_InitTypeDef GPIO_InitStructure; CAN_InitTypeDef CAN_InitStructure;CAN_FilterInitTypeDef CAN_FilterInitStructure; #if CAN_RX0_INT_ENABLE NVIC_InitTypeDef NVIC_InitStructure; #endifRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);//ʹÄÜPORTAʱÖÓ RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);//ʹÄÜCAN1ʱÖÓ GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);GPIO_InitStructure.GPIO_Pin CAN_HIGH;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; //¸´ÓÃÍÆÍìGPIO_Init(CAN_GPIO, GPIO_InitStructure); //³õʼ»¯IOGPIO_InitStructure.GPIO_Pin CAN_LOW;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;//ÉÏÀ­ÊäÈëGPIO_Init(CAN_GPIO, GPIO_InitStructure);//³õʼ»¯IO//CANµ¥ÔªÉèÖÃCAN_InitStructure.CAN_TTCMDISABLE; //·Çʱ¼ä´¥·¢Í¨ÐÅģʽ //CAN_InitStructure.CAN_ABOMENABLE; //Èí¼þ×Ô¶¯ÀëÏß¹ÜÀí //CAN_InitStructure.CAN_AWUMDISABLE; //˯Ãßģʽͨ¹ýÈí¼þ»½ÐÑ(Çå³ýCAN-MCRµÄSLEEPλ)//CAN_InitStructure.CAN_NARTENABLE; //½ûÖ¹±¨ÎÄ×Ô¶¯´«ËÍ //CAN_InitStructure.CAN_RFLMDISABLE; //±¨ÎIJ»Ëø¶¨,еĸ²¸Ç¾ÉµÄ // CAN_InitStructure.CAN_TXFPDISABLE; //ÓÅÏȼ¶Óɱ¨Îıêʶ·û¾ö¶¨ //CAN_InitStructure.CAN_Mode mode; //ģʽÉèÖ㺠mode:0,ÆÕͨģʽ;1,»Ø»·Ä£Ê½; ////ÉèÖò¨ÌØÂÊCAN_InitStructure.CAN_SJWtsjw; //ÖØÐÂͬ²½ÌøÔ¾¿í¶È(Tsjw)Ϊtsjw1¸öʱ¼äµ¥Î» CAN_SJW_1tq CAN_SJW_2tq CAN_SJW_3tq CAN_SJW_4tqCAN_InitStructure.CAN_BS1tbs1; //Tbs1tbs11¸öʱ¼äµ¥Î»CAN_BS1_1tq ~CAN_BS1_16tqCAN_InitStructure.CAN_BS2tbs2;//Tbs2tbs21¸öʱ¼äµ¥Î»CAN_BS2_1tq ~ CAN_BS2_8tqCAN_InitStructure.CAN_Prescalerbrp; //·ÖƵϵÊý(Fdiv)Ϊbrp1 //CAN_Init(CAN1, CAN_InitStructure); // ³õʼ»¯CAN1 CAN_FilterInitStructure.CAN_FilterNumber0; //¹ýÂËÆ÷0CAN_FilterInitStructure.CAN_FilterModeCAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScaleCAN_FilterScale_32bit; //32λ CAN_FilterInitStructure.CAN_FilterIdHigh0x0000;32λIDCAN_FilterInitStructure.CAN_FilterIdLow0x0000;CAN_FilterInitStructure.CAN_FilterMaskIdHigh0x0000;//32λMASKCAN_FilterInitStructure.CAN_FilterMaskIdLow0x0000;CAN_FilterInitStructure.CAN_FilterFIFOAssignmentCAN_Filter_FIFO0;//¹ýÂËÆ÷0¹ØÁªµ½FIFO0CAN_FilterInitStructure.CAN_FilterActivationENABLE; //¼¤»î¹ýÂËÆ÷0CAN_FilterInit(CAN_FilterInitStructure);//Â˲¨Æ÷³õʼ»¯ #if CAN_RX0_INT_ENABLECAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);//FIFO0ÏûÏ¢¹ÒºÅÖжÏÔÊÐí. NVIC_InitStructure.NVIC_IRQChannel USB_LP_CAN1_RX0_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 1; // Ö÷ÓÅÏȼ¶Îª1NVIC_InitStructure.NVIC_IRQChannelSubPriority 0; // ´ÎÓÅÏȼ¶Îª0NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;NVIC_Init(NVIC_InitStructure); #endifreturn 0; } 采集及发送部分 #define STD_ID_PID (0x10205)//0x0081 #define STD_ID_BASE (0x20205)//0x0101 #define STD_ID_LONG (0x40205)//0x0201 #define STD_ID_LAT (0x80205)//0x0401 while(1){if(sys_timer._1s_beat){//todo 1s freq thingsbme280GetData(rel_data.bmp280_press,bmp280_temper,bmp280_humidity,bmp280_asl);Analysis_GPS();SHT30_Read_Humiture(sht30_temp,sht30_humidity);rel_data.area_temper sht30_temp*1.0f/10;rel_data.area_humi sht30_humidity*1.0f/10;//»ù±¾ÐÅÏ¢·¢ËÍcan_buff[0] ((STD_ID_BASE0xff00)8);can_buff[1] ((STD_ID_BASE0x00ff)0);can_buff[2] (sht30_temp0xff00)8;//ζÈcan_buff[3] (sht30_temp0x00ff)0;can_buff[4] (sht30_humidity0xff00)8;//ʪ¶Ècan_buff[5] (sht30_humidity0x00ff)0;can_buff[6] ((u16)rel_data.bmp280_press0xff00)8;//´óÆøÑ¹can_buff[7] ((u16)rel_data.bmp280_press0x00ff)0;can_buff[8] 0x00;can_buff[9] 0x00;Can_Send_Msg(can_buff,sizeof(can_buff));//¾­¶ÈÐÅÏ¢·¢ËÍcan_buff[0] ((STD_ID_LONG0xff00)8);can_buff[1] ((STD_ID_LONG0x00ff)0);memcpy(can_buff[2],(void *)rel_data.longitude,sizeof(double));Can_Send_Msg(can_buff,sizeof(can_buff));//γ¶ÈÐÅÏ¢·¢ËÍcan_buff[0] ((STD_ID_LAT0xff00)8);can_buff[1] ((STD_ID_LAT0x00ff)0);memcpy(can_buff[2],(void *)rel_data.latitude,sizeof(double));Can_Send_Msg(can_buff,sizeof(can_buff)); sys_timer._1s_beat false;}if(sys_timer._500ms_beat){//todo 500ms freq thingssys_timer._500ms_beat false;}if(sys_timer._50ms_beat){Get_Adc_Num();adc_buf[adc_cnt] rel_data.adc_val;if(adc_cnt4){//Íê³ÉÒ»°ü£¬´ò°ü·¢×ß-ͳһ°´ÕÕ´ó¶ËÐòcan_buff[0] ((STD_ID_PID0xff00)8);can_buff[1] ((STD_ID_PID0x00ff)0);can_buff[2] (adc_buf[0]0xff00)8;can_buff[3] (adc_buf[0]0x00ff)0;can_buff[4] (adc_buf[1]0xff00)8;can_buff[5] (adc_buf[1]0x00ff)0;can_buff[6] (adc_buf[2]0xff00)8;can_buff[7] (adc_buf[2]0x00ff)0;can_buff[8] (adc_buf[3]0xff00)8;can_buff[9] (adc_buf[3]0x00ff)0;Can_Send_Msg(can_buff,sizeof(can_buff));adc_cnt 0;}sys_timer._50ms_beat 0;}} u8 Can_Send_Msg(u8* msg,u8 len) { u8 mbox;u16 i0;CanTxMsg TxMessage;TxMessage.StdIdmsg[0]8|msg[1]; // ±ê×¼±êʶ·û 11λTxMessage.ExtId1; // ÉèÖÃÀ©Õ¹±êʾ·û TxMessage.IDECAN_Id_Standard; // ±ê×¼Ö¡TxMessage.RTRCAN_RTR_Data; // Êý¾ÝÖ¡TxMessage.DLC8; // Òª·¢Ë͵ÄÊý¾Ý³¤¶Èfor(i0;i8;i)TxMessage.Data[i]msg[i2]; mbox CAN_Transmit(CAN1, TxMessage); i0;while((CAN_TransmitStatus(CAN1, mbox)CAN_TxStatus_Failed)(i0XFFF))i; //µÈ´ý·¢ËͽáÊøif(i0XFF)return 1;return 0; }接收中断处理部分,此处没做帧ID过滤设置没做接收数据处理设置 CanRxMsg RxMessage; void USB_LP_CAN1_RX0_IRQHandler(void) {uint8_t i;CAN_Receive(CAN1, 0, RxMessage);if(RxMessage.StdId80x01){paramx_can.Rev_ID RxMessage.StdId 0xFF;switch(RxMessage.Data[0]){default:break;}} } 运行效果如下 AD数据帧1s发送5次间隔200ms一包包含4个数据正好是50ms采集一次
http://www.w-s-a.com/news/630037/

相关文章:

  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥
  • 门户网站的种类php网站开发实训心得
  • 流程图制作网页网络优化seo
  • 个人公益网站怎么制作wordpress flat theme
  • 做营销型网站的公司篇高端网站愿建设
  • 五莲网站建设维护推广凡科做网站的方法
  • 山东省住房建设厅网站首页网站文章更新怎么通知搜索引擎
  • 商务网站的可行性分析包括大流量网站 优化
  • 推广网站有效的方法网站数据统计
  • 自建视频网站WordPress数据库添加管理员
  • 新民电商网站建设价格咨询网站建设高效解决之道
  • 做网站需要哪些步骤网站设计介绍
  • 物流网站制作目的国外中文网站排行榜单
  • 苏州网站建设招标网站ftp的所有权归谁
  • 未央免费做网站河间网站建设
  • 酒庄企业网站app制作多少钱一个
  • 西安模板建网站网站如何做直播轮播
  • 网站功能需求表百度怎么投放自己的广告