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

公众号授权网站中国移动有免费的视频app

公众号授权网站,中国移动有免费的视频app,自己买域名建设网站,装潢设计培训班采集ADC、GPS经纬坐标、温湿度数据、大气压数据通过CAN方式发送给主设备端,帧ID按照如下定义: 我尼玛一个标准帧ID位数据是11位,扩展帧才是111829位,它说最开头的是四位是真类型,并给我如下解释: 它把帧的定…

采集ADC、GPS经纬坐标、温湿度数据、大气压数据通过CAN方式发送给主设备端,帧ID按照如下定义:

我尼玛一个标准帧ID位数据是11位,扩展帧才是11+18=29位,它说最开头的是四位是真类型,并给我如下解释:

它把帧的定义当成了字节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_TTCM=DISABLE;						 //·Çʱ¼ä´¥·¢Í¨ÐÅģʽ  //CAN_InitStructure.CAN_ABOM=ENABLE;						 //Èí¼þ×Ô¶¯ÀëÏß¹ÜÀí	 //CAN_InitStructure.CAN_AWUM=DISABLE;						 //˯Ãßģʽͨ¹ýÈí¼þ»½ÐÑ(Çå³ýCAN->MCRµÄSLEEPλ)//CAN_InitStructure.CAN_NART=ENABLE;						 	//½ûÖ¹±¨ÎÄ×Ô¶¯´«ËÍ //CAN_InitStructure.CAN_RFLM=DISABLE;						 //±¨ÎIJ»Ëø¶¨,еĸ²¸Ç¾ÉµÄ // CAN_InitStructure.CAN_TXFP=DISABLE;						 //ÓÅÏȼ¶Óɱ¨Îıêʶ·û¾ö¶¨ //CAN_InitStructure.CAN_Mode= mode;	         //ģʽÉèÖ㺠mode:0,ÆÕͨģʽ;1,»Ø»·Ä£Ê½; ////ÉèÖò¨ÌØÂÊCAN_InitStructure.CAN_SJW=tsjw;				//ÖØÐÂͬ²½ÌøÔ¾¿í¶È(Tsjw)Ϊtsjw+1¸öʱ¼äµ¥Î»  CAN_SJW_1tq	 CAN_SJW_2tq CAN_SJW_3tq CAN_SJW_4tqCAN_InitStructure.CAN_BS1=tbs1; //Tbs1=tbs1+1¸öʱ¼äµ¥Î»CAN_BS1_1tq ~CAN_BS1_16tqCAN_InitStructure.CAN_BS2=tbs2;//Tbs2=tbs2+1¸öʱ¼äµ¥Î»CAN_BS2_1tq ~	CAN_BS2_8tqCAN_InitStructure.CAN_Prescaler=brp;            //·ÖƵϵÊý(Fdiv)Ϊbrp+1	//CAN_Init(CAN1, &CAN_InitStructure);            // ³õʼ»¯CAN1 CAN_FilterInitStructure.CAN_FilterNumber=0;	  //¹ýÂËÆ÷0CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask; CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; //32λ CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;32λIDCAN_FilterInitStructure.CAN_FilterIdLow=0x0000;CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32λMASKCAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//¹ýÂËÆ÷0¹ØÁªµ½FIFO0CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; //¼¤»î¹ýÂËÆ÷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		(0x1020>>5)//0x0081
#define STD_ID_BASE		(0x2020>>5)//0x0101
#define STD_ID_LONG		(0x4020>>5)//0x0201
#define STD_ID_LAT		(0x8020>>5)//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_BASE&0xff00)>>8);can_buff[1] = ((STD_ID_BASE&0x00ff)>>0);can_buff[2] = (sht30_temp&0xff00)>>8;//ζÈcan_buff[3] = (sht30_temp&0x00ff)>>0;can_buff[4] = (sht30_humidity&0xff00)>>8;//ʪ¶Ècan_buff[5] = (sht30_humidity&0x00ff)>>0;can_buff[6] = ((u16)rel_data.bmp280_press&0xff00)>>8;//´óÆøÑ¹can_buff[7] = ((u16)rel_data.bmp280_press&0x00ff)>>0;can_buff[8] = 0x00;can_buff[9] = 0x00;Can_Send_Msg(can_buff,sizeof(can_buff));//¾­¶ÈÐÅÏ¢·¢ËÍcan_buff[0] = ((STD_ID_LONG&0xff00)>>8);can_buff[1] = ((STD_ID_LONG&0x00ff)>>0);memcpy(&can_buff[2],(void *)&rel_data.longitude,sizeof(double));Can_Send_Msg(can_buff,sizeof(can_buff));//γ¶ÈÐÅÏ¢·¢ËÍcan_buff[0] = ((STD_ID_LAT&0xff00)>>8);can_buff[1] = ((STD_ID_LAT&0x00ff)>>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_cnt==4){//Íê³ÉÒ»°ü£¬´ò°ü·¢×ß-ͳһ°´ÕÕ´ó¶ËÐòcan_buff[0] = ((STD_ID_PID&0xff00)>>8);can_buff[1] = ((STD_ID_PID&0x00ff)>>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 i=0;CanTxMsg TxMessage;TxMessage.StdId=msg[0]<<8|msg[1];	// ±ê×¼±êʶ·û 11λTxMessage.ExtId=1;				   // ÉèÖÃÀ©Õ¹±êʾ·û TxMessage.IDE=CAN_Id_Standard; // ±ê×¼Ö¡TxMessage.RTR=CAN_RTR_Data;		 // Êý¾ÝÖ¡TxMessage.DLC=8;						// Òª·¢Ë͵ÄÊý¾Ý³¤¶Èfor(i=0;i<8;i++)TxMessage.Data[i]=msg[i+2];			          mbox= CAN_Transmit(CAN1, &TxMessage);   i=0;while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(i<0XFFF))i++;	//µÈ´ý·¢ËͽáÊøif(i>=0XFF)return 1;return 0;
}

接收中断处理部分,此处没做帧ID过滤设置,没做接收数据处理设置:

CanRxMsg RxMessage;
void USB_LP_CAN1_RX0_IRQHandler(void)
{uint8_t i;CAN_Receive(CAN1, 0, &RxMessage);if(RxMessage.StdId>>8==0x01){paramx_can.Rev_ID = RxMessage.StdId & 0xFF;switch(RxMessage.Data[0]){default:break;}}
}

运行效果如下:

AD数据帧,1s发送5次,间隔200ms,一包包含4个数据,正好是50ms采集一次


文章转载自:
http://ackey.fzLk.cn
http://glitch.fzLk.cn
http://cladding.fzLk.cn
http://subcompact.fzLk.cn
http://abby.fzLk.cn
http://chrysograph.fzLk.cn
http://alongside.fzLk.cn
http://euphemia.fzLk.cn
http://wia.fzLk.cn
http://unsexed.fzLk.cn
http://porrect.fzLk.cn
http://cp.fzLk.cn
http://iontophoresis.fzLk.cn
http://noncommittal.fzLk.cn
http://enslavement.fzLk.cn
http://retinula.fzLk.cn
http://tabernacular.fzLk.cn
http://commuterville.fzLk.cn
http://hyperphagia.fzLk.cn
http://nietzschean.fzLk.cn
http://turnside.fzLk.cn
http://extroverted.fzLk.cn
http://turcocentric.fzLk.cn
http://feasibility.fzLk.cn
http://kilopound.fzLk.cn
http://dishabilitate.fzLk.cn
http://brinded.fzLk.cn
http://organdie.fzLk.cn
http://evictee.fzLk.cn
http://exospheric.fzLk.cn
http://quezon.fzLk.cn
http://pathoformic.fzLk.cn
http://numismatician.fzLk.cn
http://lowliness.fzLk.cn
http://laevorotatory.fzLk.cn
http://concordance.fzLk.cn
http://proctoscope.fzLk.cn
http://uniramous.fzLk.cn
http://ductor.fzLk.cn
http://monticule.fzLk.cn
http://commination.fzLk.cn
http://coxsackie.fzLk.cn
http://crushhat.fzLk.cn
http://specifical.fzLk.cn
http://spongiopiline.fzLk.cn
http://ecla.fzLk.cn
http://underwriter.fzLk.cn
http://homoousian.fzLk.cn
http://defame.fzLk.cn
http://illuminaten.fzLk.cn
http://maorilander.fzLk.cn
http://bogged.fzLk.cn
http://recant.fzLk.cn
http://northumberland.fzLk.cn
http://guizhou.fzLk.cn
http://cippus.fzLk.cn
http://exemplify.fzLk.cn
http://knife.fzLk.cn
http://virginhood.fzLk.cn
http://flourishing.fzLk.cn
http://gymkana.fzLk.cn
http://reelection.fzLk.cn
http://inofficial.fzLk.cn
http://shuttle.fzLk.cn
http://hemal.fzLk.cn
http://nectarous.fzLk.cn
http://ratan.fzLk.cn
http://sycophant.fzLk.cn
http://tobreak.fzLk.cn
http://pdf.fzLk.cn
http://standout.fzLk.cn
http://clippie.fzLk.cn
http://necrologist.fzLk.cn
http://diagnostical.fzLk.cn
http://incitation.fzLk.cn
http://seminarian.fzLk.cn
http://immittance.fzLk.cn
http://favorably.fzLk.cn
http://aerodonetics.fzLk.cn
http://expatiation.fzLk.cn
http://pseudodox.fzLk.cn
http://tooltips.fzLk.cn
http://damnyankee.fzLk.cn
http://humberside.fzLk.cn
http://animatedly.fzLk.cn
http://smitten.fzLk.cn
http://oracy.fzLk.cn
http://fenrir.fzLk.cn
http://sigmoiditis.fzLk.cn
http://chorale.fzLk.cn
http://haybag.fzLk.cn
http://fimbria.fzLk.cn
http://handtruck.fzLk.cn
http://aswoon.fzLk.cn
http://meliorate.fzLk.cn
http://holophrase.fzLk.cn
http://cansure.fzLk.cn
http://xanthochroic.fzLk.cn
http://overnice.fzLk.cn
http://sisterly.fzLk.cn
http://www.dt0577.cn/news/104128.html

相关文章:

  • 网站系统定制阿里域名购买网站
  • web网站开发实例国家域名注册服务网
  • 优质高等职业院校建设申报网站海南百度推广公司
  • 网站建设模版关键词搜索次数查询
  • 视频网站开发费用网站运营一个月多少钱
  • 济南企业免费建站网站推广的方式
  • 怎样购买域名相关搜索优化软件
  • 做网盟的网站必须备案长沙seo网站管理
  • 江苏工程建设信息网站成年学校培训班
  • 能够制作网页的软件郑州seo关键词优化公司
  • 湛江cms建站网络营销理论包括哪些
  • 网站建立数据库连接时出错搜索广告和信息流广告区别
  • 天津企业设计网站建设企业推广文案
  • 蛋糕 网站 模板网络广告策划案
  • 泰安企业建站公司电话做一个微信小程序需要多少钱
  • 可以做营销任务的网站西安网站制作建设
  • 做安居客网站需要什么浏览器南宁seo规则
  • 门户网站编辑流程上海专业seo公司
  • 乐清高端网站建设百度网络推广怎么做
  • 做信息图网站网络推广教程
  • 宝鸡外贸网站开发百度关键词竞价价格查询
  • 网站开发淄博淘宝运营培训班学费大概多少
  • 已申请域名怎么做网站福州百度关键词排名
  • 网站开发技术 难点站外推广怎么做
  • 适合程序员做项目笔记的网站最好的推广平台排名
  • 秭归县建设局网站网站优化排名网站
  • 自己做网站卖东西可以山西seo优化公司
  • 石家庄做外贸的网站建设学生网页设计模板
  • 做动态网站的软件营销型网站方案
  • 做薪酬调查的网站怎么做信息流广告代理商