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

网站结构有哪些类型东营网站建设哪家更好

网站结构有哪些类型,东营网站建设哪家更好,专业电商网站开发,东莞阳性最新消息【STM32】HAL库——串口中断只接收到两个字符 一、问题描述二、解决方法三、原因分析 一、问题描述 环境:STM32CubeMX(6.7.0)MDK-ARM(V5.36.0.0)STM32F103C8T6 使用XCOM发送字符串(总共8个字符),单片机进行解析为ModBus协议失败…

【STM32】HAL库——串口中断只接收到两个字符

  • 一、问题描述
  • 二、解决方法
  • 三、原因分析

一、问题描述

环境:STM32CubeMX(6.7.0)+MDK-ARM(V5.36.0.0)+STM32F103C8T6

使用XCOM发送字符串(总共8个字符),单片机进行解析为ModBus协议失败,只接收到前两个字节的数据。

二、解决方法

原串口中断回调函数:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart->Instance == USART1) //判断是哪个串口调用回调函数{if(modbus.reflag==1)     //有数据包正在处理{return;}modbus.rcbuf[modbus.recount++]=sbuf;printf("modbus.recount = %d, sbuf = %d\r\n", modbus.recount-1, sbuf);modbus.timout=0;if(modbus.recount ==1)  //收到主机发来的一帧数据的第一个字节{modbus.timrun=1;      //启动定时}}if(huart->Instance == USART2){}//重新使能串口接收中断HAL_UART_Receive_IT(&huart1, &sbuf, sizeof(sbuf));
}

去掉串口中断回调函数的printf函数即可

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{if(huart->Instance == USART1) //判断是哪个串口调用回调函数{if(modbus.reflag==1)     //有数据包正在处理{return;}modbus.rcbuf[modbus.recount++]=sbuf;modbus.timout=0;if(modbus.recount ==1)  //收到主机发来的一帧数据的第一个字节{modbus.timrun=1;      //启动定时}}if(huart->Instance == USART2){}//重新使能串口接收中断HAL_UART_Receive_IT(&huart1, &sbuf, sizeof(sbuf));
}

三、原因分析

在嵌入式系统中,将printf函数直接放在串口中断服务程序(ISR)中会导致一些问题,这是因为printf函数通常是一个比较复杂的函数,它需要执行多个指令,而在ISR中执行复杂的操作可能导致不可预测的行为和性能问题。以下是一些原因:

1.中断上下文的限制:中断服务程序在一个称为中断上下文的环境中执行。这个上下文可能与主程序上下文有很大不同,包括栈大小和运行时限制。printfi通常依赖于一些栈和堆内存,而在中断上下文中使用这些资源可能导致栈溢出或堆破坏。

2.原子性问题:在中断中执行printf可能会打破原子性要求,这意味着中断可能在中断服务程序运行期间被其他中断中断,这可能导致数据竞争和不一致的数据状态。

3.阻塞问题:pitf函数通常需要一些时间来完成,如果在中断中执行,可能会阻塞其他中断的处理。这可能导致严重的性能问题,特别是在高优先级中断和紧急任务的情况下。

为了在嵌入式系统中进行调试和输出信息,通常推荐使用轻量级的日志或缓冲机制,以便在中断中记录信息,然后在主程序上下文中将它们输出到串口。这可以确保不会出现上述问题,同时仍然允许你进行调试和数据记录。如果你需要在中断中快速记录数据,可以使用全局变量或环形缓冲区,然后在主程序上下文中定期检查并输出这些数据。

总之,在中断中执行prit通常是不建议的,因为它可能会引发各种问题,包括性能问题和数据不一致。最好的做法是在中断中尽量保持操作的简单和快速,将复杂的操作和输出留给主程序上下文。

http://www.hrbkazy.com/news/143.html

相关文章:

  • 网站的页面动态需要哪些方法做济南优化seo公司
  • 莆田做网站建设建个网站费用大概多少钱一年
  • 织梦cms网站迁移广告联盟自动挂机赚钱
  • 做网站和优化共多少钱?现在做网络推广好做吗
  • 公司网站维护方案网络推广的概念
  • 北京市西城区社会建设网站企业关键词推广
  • 承德平台长春网站优化平台
  • 从网络安全角度考量_写出建设一个大型电影网站规划方案泰安百度推广电话
  • 有了域名空间服务器怎么做网站seo查询源码
  • 无锡网站建设制作公司搜狗推广登陆
  • 微网站与微信网站外贸网站
  • 白银市建设网站广西seo关键词怎么优化
  • 做外贸哪些网站可以找客户交换链接是什么意思
  • 网站做的好的百度关键词优化怎么做
  • 素材网站设计今日微博热搜榜前十名
  • 做网站唐山百度竞价怎么做效果好
  • 网站建设中下载专业网站建设公司
  • 韩国男女直接做的视频网站竞价是什么工作
  • 与女鬼做的网站短视频seo代理
  • 小店网站怎么做天津百度seo排名优化
  • 新开网站做内贸业务员好做武汉seo推广优化
  • 焦作会计做继续教育在哪个网站体验营销案例分析
  • 网站开发网站整合营销是什么
  • 找人做公司网站关键词排名推广软件
  • 网站建设类行业资讯网络推广优化
  • 厦门网站建设系统游戏推广工作好做吗
  • 公司请外包做的网站怎么维护淘宝关键词排名怎么查
  • 联锁酒店网站建设需求分析郑州seo课程
  • 建设网站只seo搜索优化怎么做
  • 武汉网站建设哪家最好北京搜索引擎推广公司