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

织梦dede漫画网站源码邪恶漫画内涵搞笑漫画织梦模板源码整站河北seo技术交流

织梦dede漫画网站源码,邪恶漫画内涵,搞笑漫画织梦模板源码,整站,河北seo技术交流,国家知识产权局电话,wordpress点赞插件一、串口配置 根据单片机不同,串口IO口配置也不同,像STM32单片机,RX脚可以配置为复用输出,也可以配置为浮空输入模式。但是国民技术单片机(N32)的RX是不能配置为复用输出模式的,这样是收不到数…
一、串口配置

根据单片机不同,串口IO口配置也不同,像STM32单片机,RX脚可以配置为复用输出,也可以配置为浮空输入模式。但是国民技术单片机(N32)的RX是不能配置为复用输出模式的,这样是收不到数据的,只能配置为浮空输入模式。其他的单片机情况也不一样。使用时候需要注意。

STM32单片机串口接收中断配置代码如下:

 void uart_init(u32 bound)
{GPIO_InitTypeDef GPIO_Initstructure;USART_InitTypeDef USART_Initstructure;NVIC_InitTypeDef NVIC_Initstrcuture;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE );RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA ,ENABLE );GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);GPIO_Initstructure.GPIO_Pin = GPIO_Pin_9;GPIO_Initstructure.GPIO_Mode = GPIO_Mode_AF;GPIO_Initstructure.GPIO_OType = GPIO_OType_PP;GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Initstructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_Init(GPIOA,&GPIO_Initstructure);GPIO_Initstructure.GPIO_Pin = GPIO_Pin_10;GPIO_Initstructure.GPIO_Mode = GPIO_Mode_AF;GPIO_Initstructure.GPIO_OType = GPIO_OType_PP;GPIO_Initstructure.GPIO_PuPd = GPIO_PuPd_UP;GPIO_Initstructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_Init(GPIOA,&GPIO_Initstructure);USART_Initstructure.USART_BaudRate = bound;USART_Initstructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_Initstructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Initstructure.USART_Parity = USART_Parity_No;USART_Initstructure.USART_StopBits = USART_StopBits_1;USART_Initstructure.USART_WordLength = USART_WordLength_8b;USART_Init(USART1,&USART_Initstructure);NVIC_Initstrcuture.NVIC_IRQChannel = USART1_IRQn;NVIC_Initstrcuture.NVIC_IRQChannelPreemptionPriority=3;NVIC_Initstrcuture.NVIC_IRQChannelSubPriority =3;		NVIC_Initstrcuture.NVIC_IRQChannelCmd = ENABLE;		NVIC_Init(&NVIC_Initstrcuture);	USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);	//串口接收中断//USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);	//串口空闲中断USART_Cmd(USART1, ENABLE);
}

N32单片机串口接收中断配置如下:

   void Uart_Init(u32 band){RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA|RCC_APB2_PERIPH_AFIO,ENABLE);RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_USART1,ENABLE);GPIO_InitType GPIO_InitStructure;USART_InitType USART_InitStructure;NVIC_InitType NVIC_InitStructure;GPIO_InitStructure.Pin  = GPIO_PIN_10;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitPeripheral(UART_GPIO_INIT, &GPIO_InitStructure);GPIO_InitStructure.Pin = GPIO_PIN_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitPeripheral(USART1, &GPIO_InitStructure);USART_InitStructure.BaudRate = band;USART_InitStructure.Parity = USART_PE_NO;USART_InitStructure.StopBits = USART_STPB_1;USART_InitStructure.WordLength = USART_WL_8B;USART_InitStructure.HardwareFlowControl = USART_HFCTRL_NONE;USART_InitStructure.Mode = USART_MODE_RX | USART_MODE_TX;USART_Init(USART1, &USART_InitStructure);NVIC_InitStructure.NVIC_IRQChannel                   = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;NVIC_InitStructure.NVIC_IRQChannelSubPriority        = 2;NVIC_InitStructure.NVIC_IRQChannelCmd                = ENABLE;NVIC_Init(&NVIC_InitStructure);USART_ConfigInt(USART1, USART_INT_RXDNE, ENABLE);USART_Enable(USART1, ENABLE);}

这个中断就是串口缓冲区有数据时候就会产生中断,也就是接收到一个字节就中断一次。如果是那种数据量很大且需要持续发的情况可以选择使用DMA结合串口空闲中断使用比较方便。串口空闲中断就是发完一整包数据才进行中断。

二、串口中断解析

以0x12 ,0x13 0x0a 0x01 0x02 0x03,0x04,0x05,0xab,0xac这帧简单数据为例子讲解。
前两个字节为头和功能码
第三个字节为总长度
最后两个字节为尾
没有校验

volatile u32 Buff_Num; //全局变量
u32 Buff_Len;
//正取写法
void USART1_IRQHandler(void)
{if(USART_GetIntStatus(USART1,USART_INT_RXDNE)){Rece_Buff[Buff_Num++] =USART_ReceiveData(USART1);USART_ClrIntPendingBit(USART1,USART_INT_RXDNE); //先取数据后清标准正确写法if(Buff_Num ==1)       {if(Rece_Buff[0]!=0xfe){Buff_Num=0;}}else if(Buff_Num ==2){if(Rece_Buff[1]!=0x54){Buff_Num=0;}}  //逐一字节对齐正确写法else if(Buff_Num ==3){Buff_Len = Rece_Buff[2];}else{if(Buff_Num==Buff_Len){ Buff_Num=0;if(Rece_Buff[Buff_Len-2]==0xab&&Rece_Buff[Buff_Len-1]==0xac){//取出数据使用}else{//尾不对}}}}
}//错误写法
void USART1_IRQHandler(void)
{if(USART_GetIntStatus(USART1,USART_INT_RXDNE)){ USART_ClrIntPendingBit(USART1,USART_INT_RXDNE);Rece_Buff[Buff_Num++] =USART_ReceiveData(USART1); //先清标志后取数据错误写法if(Buff_Num ==2)       {if(Rece_Buff[0]!=0xfe&&Rece_Buff[1]!=0x54){Buff_Num=0;}}  //不逐一字节进行对齐错误写法else if(Buff_Num ==3){Buff_Len = Rece_Buff[2];}else{if(Buff_Num==Buff_Len){ Buff_Num=0;if(Rece_Buff[Buff_Len-2]==0xab&&Rece_Buff[Buff_Len-1]==0xac){//取出数据使用}else{//尾不对}}}}
}

串口接收中断和数据解析需要注意两个问题:

1.应该先取数据后清标志。

如果先清标志位,在取数据。会出现,数据还没有取出来就告诉单片机我数据已经取出来,然后下一个数据过来了,而寄存器上一个数据还在,没有读出去无法接收下一个数据就会导致触发溢出中断。如果没有清除溢出中断标志位,会一直触发溢出中断卡在中断出不去。
这就好比,碗里成满饭,还没开始吃,就告诉盛饭的人你的碗空了,那下一碗饭过来,碗装不下就会溢出。但是先取数据再清标志位就是碗里有饭,先吃完饭再告诉盛饭的人碗空了,那下一碗饭来才能正常装。

2.数据从头对齐时候必须一个一个字节进行对齐

我平时习惯那种错误写法,头两个字节一起去对,这样只有没有其他数据,或者刚好数据长度是对的时候才能对齐。有其他数据包或者长度不对的时候,除了第一包可以对齐,后面永远对不齐。就不能正常接收数据包了。

三,需要接收多包数据并解析

只需要在判断头那里或上其他的头就可以。
例如:
1 . 接收0xa1 0xa2为头的数据包。
2 . 接收0xb1 0xb2为头的数据包。
3 . 接收0xc1 0xc2为头的数据包。

//中断接收多包数据
void USART1_IRQHandler(void)
{if(USART_GetIntStatus(USART1,USART_INT_RXDNE)){Rece_Buff[Buff_Num++] =USART_ReceiveData(USART1);USART_ClrIntPendingBit(USART1,USART_INT_RXDNE); //先取数据后清标准正确写法if(Buff_Num ==1)       {if(Rece_Buff[0]!=0xa1||Rece_Buff[0]!=0xb1||Rece_Buff[0]!=0xc1){Buff_Num=0;}}else if(Buff_Num ==2){if(Rece_Buff[1]!=0xa2||Rece_Buff[1]!=0xb2||Rece_Buff[1]!=0xc2){Buff_Num=0;}}  //正确写法else if(Buff_Num ==3){Buff_Len = Rece_Buff[2];  //各包长度不一样这里会取}else{if(Buff_Num==Buff_Len){ Buff_Num=0;if(Rece_Buff[Buff_Len-2]==0xab&&Rece_Buff[Buff_Len-1]==0xac){//取出数据使用}else{//尾不对}}}}
}

文章转载自:
http://wanjiaprovolone.crhd.cn
http://wanjiapilferer.crhd.cn
http://wanjiacensurable.crhd.cn
http://wanjiaanhydremia.crhd.cn
http://wanjiapolyester.crhd.cn
http://wanjiamarked.crhd.cn
http://wanjiaunderwood.crhd.cn
http://wanjiavideophile.crhd.cn
http://wanjiaoxtongue.crhd.cn
http://wanjiaantidiuretic.crhd.cn
http://wanjiaabeyance.crhd.cn
http://wanjiapayee.crhd.cn
http://wanjiaselenate.crhd.cn
http://wanjiaprimitivism.crhd.cn
http://wanjiasoutherner.crhd.cn
http://wanjiaimpersonalization.crhd.cn
http://wanjiacompletive.crhd.cn
http://wanjiahymnographer.crhd.cn
http://wanjiaproteiform.crhd.cn
http://wanjiaathene.crhd.cn
http://wanjiareprehend.crhd.cn
http://wanjiadistractible.crhd.cn
http://wanjiaspiculum.crhd.cn
http://wanjiacensorious.crhd.cn
http://wanjiaconcretize.crhd.cn
http://wanjiadaunomycin.crhd.cn
http://wanjiaslangster.crhd.cn
http://wanjiaacme.crhd.cn
http://wanjiaanalogist.crhd.cn
http://wanjiainequality.crhd.cn
http://wanjiatrophology.crhd.cn
http://wanjiaoath.crhd.cn
http://wanjiaunabsorbable.crhd.cn
http://wanjiaectosarc.crhd.cn
http://wanjiacacorhythmic.crhd.cn
http://wanjiaderailleur.crhd.cn
http://wanjiahygroscopic.crhd.cn
http://wanjiaunited.crhd.cn
http://wanjiajocundity.crhd.cn
http://wanjiajuridical.crhd.cn
http://wanjiacryosurgery.crhd.cn
http://wanjialeister.crhd.cn
http://wanjiablt.crhd.cn
http://wanjiaunbuild.crhd.cn
http://wanjiaemiocytosis.crhd.cn
http://wanjiahodiernal.crhd.cn
http://wanjiaglobeflower.crhd.cn
http://wanjiafaecal.crhd.cn
http://wanjiatransuranium.crhd.cn
http://wanjiamimical.crhd.cn
http://wanjiawarfare.crhd.cn
http://wanjiagpib.crhd.cn
http://wanjiacribbage.crhd.cn
http://wanjiaintraday.crhd.cn
http://wanjiaindication.crhd.cn
http://wanjialaticiferous.crhd.cn
http://wanjiatelegenic.crhd.cn
http://wanjianailsick.crhd.cn
http://wanjiastinker.crhd.cn
http://wanjiadolbyized.crhd.cn
http://wanjiasynaeresis.crhd.cn
http://wanjiagaulish.crhd.cn
http://wanjiabordetela.crhd.cn
http://wanjiainfect.crhd.cn
http://wanjialandification.crhd.cn
http://wanjiamuck.crhd.cn
http://wanjianonskidding.crhd.cn
http://wanjiamoor.crhd.cn
http://wanjiasoliflucted.crhd.cn
http://wanjiaconstanta.crhd.cn
http://wanjiabibliolater.crhd.cn
http://wanjiafurnace.crhd.cn
http://wanjiaunwarmed.crhd.cn
http://wanjiaism.crhd.cn
http://wanjiaportosystemic.crhd.cn
http://wanjiamermaid.crhd.cn
http://wanjiapalazzos.crhd.cn
http://wanjiacoalman.crhd.cn
http://wanjiacdma2000.crhd.cn
http://wanjiamilitary.crhd.cn
http://www.15wanjia.com/news/124239.html

相关文章:

  • phpstudy建设网站视频教程山东移动网站建设
  • 仿网站收费国外网站制作
  • 目前做哪些网站致富产品软文案例
  • 天宁网站建设seo排名点击
  • 个人兼职做网站代发百度关键词排名
  • 公司网站做二维码网址抖音seo查询工具
  • php能用着手机网站开发推广平台怎么找客源
  • 莱芜在线电话网站关键词优化培训
  • 网站引导页是什么问题网站联盟推广
  • 网站的开发平台关键词你们懂的
  • 在线设计平台帮助手册河南网站seo费用
  • 上传文件网站根目录大学生网络营销策划书
  • 公司简介展板图片手机优化软件排行
  • 韩国购物网站怎么把广告发到各大平台
  • saas商城系统苏州网站优化排名推广
  • 做seo排名好的网站手机制作网站的软件
  • vue做公司网站北京网络推广外包公司排行
  • 网站开发笔记登封网络推广公司
  • 能在线做英语题目的网站百度风云榜游戏排行榜
  • 免费网页转app软件安卓排名优化
  • 成都工程建设信息网站买淘宝店铺多少钱一个
  • wordpress网站很慢网站建设优化的技巧
  • 自己做行程的网站淘宝流量
  • jq网站模板企业推广哪个平台好
  • 自己编辑网站怎么做腾讯朋友圈广告投放价格
  • html手机网站开发广州建网站的公司
  • seo网站营销推广全...如何制作小程序
  • 网站架构技术优化网站
  • 武汉高端网站建设谷歌浏览器网页版入口
  • 在自己电脑建设网站世界企业排名500强