社区
单片机/工控
帖子详情
有关STM32 USART中断以及硬件IIC函数问题,求大神解决。
ChinaMaken
2014-06-03 04:16:59
最近在做GPS接收软件,需要通过STM32芯片接收GPS信号,做NEMA0183数据解析,涉及到USART中断问题。请问在中断函数再进行一个中断关闭和开启的作用,会影响到数据的完整性么?会不会出现死机现象?
求解疑。
...全文
590
7
打赏
收藏
有关STM32 USART中断以及硬件IIC函数问题,求大神解决。
最近在做GPS接收软件,需要通过STM32芯片接收GPS信号,做NEMA0183数据解析,涉及到USART中断问题。请问在中断函数再进行一个中断关闭和开启的作用,会影响到数据的完整性么?会不会出现死机现象?求解疑。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_42130048
2018-05-04
打赏
举报
回复
void USART6_Config(void) { USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIO clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC , ENABLE); /* Enable USART clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART6, ENABLE); /* Connect USART pins to */ GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_USART6); GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_USART6); /* Configure USART Tx and Rx as alternate function push-pull */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ; //GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_Init(GPIOC, &GPIO_InitStructure); /* USARTx configuration ----------------------------------------------------*/ USART_InitStructure.USART_BaudRate = 115200 ; //5250000; 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(USART6, &USART_InitStructure); /* Enable the USARTx Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART6_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); USART_ITConfig(USART6, USART_IT_RXNE, ENABLE); USART_Cmd(USART6, ENABLE); }
小乖乖_学技术
2014-06-03
打赏
举报
回复
这个主要还是看你的需要,建议不要在中断A中控制中断B,可以使用标志位来进行中断B的控制
ChinaMaken
2014-06-03
打赏
举报
回复
0.5秒的假死还做什么实时性呀,哎
dceacho
2014-06-03
打赏
举报
回复
看标题我还以为你想知道USART中断里关掉I2C中断会不回对I2C通信产生影响. 同一个中断自己关掉自己然后在自己开启,这个没影响的,不过感觉没必要这么做 假设是9600BAND下,400字节大概需要4000位,接近0.5秒的样子,即一有通信就会有接近0.5秒假死
ChinaMaken
2014-06-03
打赏
举报
回复
USART_ITConfig(USART2,USART_IT_RXNE,DISABLE); memset(gps_info, 0, 400 * sizeof(u8)); gps_len=0; while(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断 { //if(USART_GetFlagStatus(USART2, USART_FLAG_ORE) != RESET); gps_info[gps_len]=USART_ReceiveData(USART2);//(USART2->DR); //读取接收到的状态数据 gps_len++; } USART_ITConfig(USART2,USART_IT_RXNE,ENABLE); 这是中断函数中的全部代码,你们看下,如何
ChinaMaken
2014-06-03
打赏
举报
回复
为了接收大量的GPS信息。
zhxianbin
2014-06-03
打赏
举报
回复
为什么关中断?
STM32
F10x_
硬件
I2C读写EEPROM(标准外设库版本)
推荐 分享一个
大神
的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:https://www.strongerhuang.com 我的知乎:https://www.zhihu.com/people/strongerHuang.com Ⅰ、写在前面...
STM32
串口通信详解以及通信异常或者卡死常见
问题
分析
蓝牙耳机电路方案设计 目录蓝牙耳机电路方案设计实现原理
硬件
介绍电路方案 实现原理
硬件
介绍 电路方案
有关嵌入式、单片机、51单片机、
STM32
、的一些概念详解
文章目录一、什么是单片机二、什么是嵌入式嵌入式的
硬件
层嵌入式的软件层嵌入式的中间层三、嵌入式和单片机的区别和联系一、什么是嵌入式二、什么是单片机三、嵌入式和单片机的区别四、51单片机和
STM32
单片机五、有无操作系统的区别,程序启动流程单片机有无操作系统有什么区别嵌入式/单片机有哪些操作系统关于单片机程序运行的一些理解带操作系统的嵌入式系统的启动过程六、嵌入式学习路线,单片机学习路线?到底该怎么学嵌入式方向嵌入式
硬件
方向嵌入式软件方向学习嵌入式需要那些内容?C语言基本的
硬件
原理数据结构与算法计算机基础学习路
STM32
MPU6050数据获取、数据处理
2.4
STM32
MPU6050数据获取(
IIC
+ DMP) 本篇文章主要针对廉价的MPU6050模块。我们这里完成了MPU6050的数据获取、零偏自动设置、温漂抑制。这里提供源码工程文件,供大家下载,在公众号:小白学移动机器人,发送:MPU6050,即可获得。 2.4.1
解决
的
问题
DMP库的移植(文件已被更改过,更好的移植) MPU6050数据的获取(通过DMP获取的四元数,做姿态解算) 零偏自动校准(实现DMP方式上电既是0角度) 有效的温漂抑制(针对yaw值无法滤波的情况,使用特殊的方法,实现
stm32
f103rct6使用内部晶振作为时钟源
stm32
f103rct6(库
函数
版、HAL、寄存器例程)使用内部晶振8M,倍频64M
单片机/工控
27,373
社区成员
28,771
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章