头像-222176

小多多55555

个人成就

获得 1 次赞

帮助过8人

串口中断

我用F4写了一个程序 就是在串口中断接收传感器的数据 然后对数据处理后 直接在主函数中打印出来 但移植到F1上后 不能正常运行 原因是 一直没有进中断 但是 不知道哪有问题 传感器是再发数据的 硬件连接应该也没问题传感器的TX接的单片机PA10 请大家给分析分析 是哪个环节出了问题void USART1_Config(u32 bound){     GPIO_InitTypeDef GPIO_InitStructure;     USART_InitTypeDef USART_InitStructure;     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_Init(GPIOA, &GPIO_InitStructure);     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     GPIO_Init(GPIOA, &GPIO_InitStructure);     USART_InitStructure.USART_BaudRate = bound;     USART_InitStructure.USART_WordLength = USART_WordLength_8b;     USART_InitStructure.USART_StopBits = USART_StopBits_1;     USART_InitStructure.USART_Parity = USART_Parity_No ;     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;     USART_Init(USART1, &USART_InitStructure);      USART_Cmd(USART1, ENABLE);}void USART1_IRQHandler(void)                {     u8 Res;     if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)     {         printf("1");  //这个1一直打印不出来 也就是说 一直没有进串口中断          Res =USART_ReceiveData(USART1);         USART_RX_BUF[USART_RX_STA]=Res;     if(USART_RX_STA==0&&USART_RX_BUF[0]!=0x42)     {         USART_RX_STA=0;         return;     }     USART_RX_STA++;    if(USART_RX_STA==32)     {         USART_RX_STA=0;         sign=1;     }   } } ​​

STM32 串口中断

32的中断服务函数 是不是 配置好了 然后 对应串口的RX引脚来了数据 就进中断 我用F4写了一个程序 通过串口接收数据 然后对数据处理后 直接在主函数用printf打印出来 但现在 移植到F1上后 进不了 串口中断的服务函数 是为什么void USART1_Config(u32 bound)  //串口配置{ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* config USART1 clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /* USART1 GPIO config */ /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure USART1 Rx (PA.10) as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); /* USART1 mode config */ USART_InitStructure.USART_BaudRate = bound; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No ; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure);  USART_Cmd(USART1, ENABLE);}void USART1_IRQHandler(void)                 //串口1 中断服务函数{ u8 Res; if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //{ printf("1");                                           //这个1始终打印不出来 说明一直就没进中断 也就是没收到数据 但传感器 是一直往外发数据的 (数据线和单片机的PA10直接相连) Res =USART_ReceiveData(USART1); USART_RX_BUF[USART_RX_STA]=Res; if(USART_RX_STA==0&&USART_RX_BUF[0]!=0x42) { USART_RX_STA=0; return; } USART_RX_STA++;    f(USART_RX_STA==32) { USART_RX_STA=0; sign=1; }   } } 

Zigbee的学习资料或学习经验 分享一下

请问谁有Zigbee的学习资料或学习经验 分享一下 不胜感激 因为我的毕业设计就是基于Zigbee的 我之前学过51 32 现在在一家公司实习 因为工作的原因 没有太多的时间和精力去研究Zigbee 所以就想借鉴一下前人们的学习经验 希望能学的快一点 少走点弯路

关于串口 IIC 484 CAN 等等通讯有关的问题

本人学习单片机其实已经很长时间了 51 32 都学过 问出这个问题其实自己都有点脸红 但还是希望各位前辈们不吝赐教:      我学单片机有两个东西 就是无论怎么学 都学不明白 那就是串口和通讯 因为感觉这个东西特别抽象 一直不能理解 只要和串口通讯沾边的东西就蒙  一般都是用人家写好的函数 要是让我自己写 我连一点思路都没有      先说串口 说个最简单的问题  一个能直接 用串口读出数据的模块或传感器(都不需要把数据处理 直接读出来就能用的那种)把数据用串口读出来 再通过串口发给电脑 通过串口调试助手查看数据 我自己写 写不出来 就是搞不懂这个数据是如何发送接收的 感觉特别抽象 不像那种LED灯 PWM 能直观的看出来 他这数据是怎么发的 什么时候发 一次发多少 你是以什么样的形式接收他的 接收到以后存哪了 还有在一些数据手册会写什么           起始符1                         0x42                             (固定)     起始符1                         0x4d                             (固定)     帧长度高八位                  .......                              帧长度=2*13+2(数据+校验位)      帧长度低八位                  .......     数据1高八位                   .......     数据1低八位                   .......    ............................................    数据13抵八位                  .......    数据和校验高八位            ........                           校验位=起始符1+起始符2+.......+数据13抵八位    数据和校验抵八位            ........    就像这个数据手册写的 我在串口中断函数怎么才能把我想要的数据读出来 读出来我放哪 又怎么通过串口发给电脑用串口调试助手查看 想不明白 说白了还是不理解串口这个东西 就像写程序的时候 经常会看见判断标志位 while(.......)//判断接收是否完成                                        while(.........)//判断数据发送是否完成{                                                                                     { ......................                                                                 ........................}                                                                                      }当然这两个 还是明白的一个在接收数据 一个在发送数据  但他这个数据怎么发的怎么接收的 一次发多少 一次接收多少  那些个校验位他是怎么处理的 还是想不明白以上是第一个问题(快把自己写晕了)         再说第二个问题 就是一些通信IIC SPI 458 CAN      其实485和CAN应该算第一个问题串口的问题      就说IIC和SPII吧 反正就是和通讯有关的         首先说这个东西在我的大脑里和串口一样 也是感觉很抽象 不能理解  因为现在很多的传感器和模块都是这两种接口的 虽说一般的传感器买来商家都会给历程 直接用人家写好的历程就行 即便不能直接用 把相应的函数移植到自己开发板还是没问题的 但如果没有历程 就给我个数据手册 让我自己通过数据手册上的时序图 和往寄存器的读写操作 把数据读出来  一下就蒙比了 完全搞不懂 怎么往寄存器写 又怎么从寄存器里读 写什么读什么 还有那些时序图 什么起始信号 停止信号 应答非应答 都是什么意思 一点不理解  反正只有一用到串口或通讯的东西 就迷糊 就是理解不了      而且我也发现周围的同学 包括我在内 都有一个毛病 拿到一个新的传感器或模块 第一反应都不是去网上查查资料或看看数据手册想办法把程序写出来  第一反应都是 “来 咱们先去网上找个历程”  然后就是百度历程各大论坛各种搜  要是能找到还行 把人家的历程移植到自己的程序中 要是找不到 自己想办法写 我只能“呵呵”一笑  以前程序咋写出来的 “自己心里没点B数吗”        之前也有人和我说过“那些无线通信啊 WIFI啊 蓝牙啊 网口啊 看起来好像很高大上的样子 那是人家芯片模块做的NB 跟你一毛钱关系都没有 你不就用串口读了个数据吗 还是那些传感器 看似挺好玩的 能测出角度 震动 温湿度 那也是人家传感器做的好 跟你也没一毛钱关系  你只不过是按照人家规定的通讯协议 把数据读出来了而已” 但是恰好串口和通讯我都学明白  所以我感觉把这些东西搞明白是非常非常有必要的 希望前辈们能给指条明路 让自己能把这些东西完全整明白理解了 下次就能自己把程序能写出来                                                           

嵌入式的基本问题

我学过51和32 关于嵌入式没有什么了解 谁能给简单说说嵌入式到底是个什么概念 或者说嵌入式到底是个什么东西?

想学学DSP 和 FPGA 这两个先学哪个比较好?为什么?

想学学DSP 和 FPGA 这两个先学哪个比较好?为什么?

ESP8266 和 Zigbee技术 无线通讯问题

有谁研究过ESP8266 和 Zigbee技术 这二者的区别是什么 如果做无限采集数据 查看数据 用哪个会比较方便

关于气体传感器ccs811有谁用过 想交流一下经验 谢谢

关于气体传感器ccs811使用 读不出TVOC和eCO2 看了好久的数据手册 有没有玩过的朋友 想请教一下