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

可以搭建分站的网站自己做图片的网站链接

可以搭建分站的网站,自己做图片的网站链接,中国住房和城乡建设部网站建造师,专利减缓在哪个网站上做一、串口配置 根据单片机不同#xff0c;串口IO口配置也不同#xff0c;像STM32单片机#xff0c;RX脚可以配置为复用输出#xff0c;也可以配置为浮空输入模式。但是国民技术单片机#xff08;N32#xff09;的RX是不能配置为复用输出模式的#xff0c;这样是收不到数…一、串口配置 根据单片机不同串口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_IRQChannelPreemptionPriority3;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_Num0;}}else if(Buff_Num 2){if(Rece_Buff[1]!0x54){Buff_Num0;}} //逐一字节对齐正确写法else if(Buff_Num 3){Buff_Len Rece_Buff[2];}else{if(Buff_NumBuff_Len){ Buff_Num0;if(Rece_Buff[Buff_Len-2]0xabRece_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]!0xfeRece_Buff[1]!0x54){Buff_Num0;}} //不逐一字节进行对齐错误写法else if(Buff_Num 3){Buff_Len Rece_Buff[2];}else{if(Buff_NumBuff_Len){ Buff_Num0;if(Rece_Buff[Buff_Len-2]0xabRece_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_Num0;}}else if(Buff_Num 2){if(Rece_Buff[1]!0xa2||Rece_Buff[1]!0xb2||Rece_Buff[1]!0xc2){Buff_Num0;}} //正确写法else if(Buff_Num 3){Buff_Len Rece_Buff[2]; //各包长度不一样这里会取}else{if(Buff_NumBuff_Len){ Buff_Num0;if(Rece_Buff[Buff_Len-2]0xabRece_Buff[Buff_Len-1]0xac){//取出数据使用}else{//尾不对}}}} }
http://www.hkea.cn/news/14431665/

相关文章:

  • 管理网站建设源代码程序易营宝网站建设
  • 天津做宠物饲料的网站江苏省华建建设股份有限公司网站
  • 外贸高端网站定制湛江seo代理商
  • 济南360做网站电话枫树seo网
  • 网站 固定ip自己制作网址收款
  • 苏州尚云网站建设wordpress linux 伪静态
  • 网站建设 网站推广白帽seo是什么
  • 系统 网站开发工程师网站建设报价单 文库
  • windows系统安装wordpress网站seo方案案例
  • 钦州建设网站网络运营者应当制定网络安全事件
  • 我想在网站上卖食品怎么做温州网站开发公司
  • 做网站的图片Pc端和手机端的区别上海网站推广定制
  • OA 公司网站 铁道建设报wordpress 新页面打开空白页
  • 比较大的软件下载网站国外自助建站
  • 国外网站免费dnswordpress dux-plus
  • 两学一做网站专栏怎么设置百度网盘登陆入口
  • 天津seo网站管理电商网站平台有哪些功能模块
  • html5网站模板怎么修改wordpress设置自己的管理邮箱
  • 定制营销型网站什么意思湖南省交通建设质量监督站网站
  • 有关建设旅行网站的建设wordpress 功能开发教程
  • 杭州网站开发培训网上做兼职的网站有哪些
  • 网站怎么做搜索引擎才能收录深圳设计公司排名深圳市广告公司
  • 好看的网站案例广西网站建设智能优化
  • 大连模板网站制作费用帝国cms灵动标签做网站地图
  • 响应式网站不加载图片怎么做卖衣服网站
  • 搜索引擎网站开发百度网页版登录入口官网
  • 做h5长图网站做热点链接的网站
  • 宝塔面板怎么做多个网站邯郸网站制作多少钱
  • wamp网站开发网站做xss过滤
  • 网站服务器到期了怎么续费仿制网站侵权吗