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

潍坊360做网站怎么样西安短视频培训

潍坊360做网站怎么样,西安短视频培训,网站导入,北京网站设计制作【STM32】HAL库——串口中断只接收到两个字符 一、问题描述二、解决方法三、原因分析 一、问题描述 环境#xff1a;STM32CubeMX(6.7.0)MDK-ARM(V5.36.0.0)STM32F103C8T6 使用XCOM发送字符串#xff08;总共8个字符#xff09;#xff0c;单片机进行解析为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.reflag1) //有数据包正在处理{return;}modbus.rcbuf[modbus.recount]sbuf;printf(modbus.recount %d, sbuf %d\r\n, modbus.recount-1, sbuf);modbus.timout0;if(modbus.recount 1) //收到主机发来的一帧数据的第一个字节{modbus.timrun1; //启动定时}}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.reflag1) //有数据包正在处理{return;}modbus.rcbuf[modbus.recount]sbuf;modbus.timout0;if(modbus.recount 1) //收到主机发来的一帧数据的第一个字节{modbus.timrun1; //启动定时}}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.sczhlp.com/news/226050/

相关文章:

  • 佛山市品牌网站建设哪家好江西网站icp备案注销
  • 电子商务网站建设与网页设计网站制作致谢词
  • 泉州网站制作套餐网站建设属于哪种公司
  • 怎样查看网站是用什么cms 做的那些网站可以做推广
  • 关于淘宝店网站建设的可行性报告惠州网站优化
  • 网站去哪做网站风格的表现形式
  • 【开题答辩全过程】以 “辛巴克餐饮”小程序为例,具备答辩的问题和答案
  • QT中的反射机制
  • Exadata数据库性能异常,备份进程卡住
  • 万江营销型网站建设来广营网站建设
  • 淮南建设厅网站wordpress仿微信菜单栏
  • 萧山网站建设xsszwl常州网站外包
  • 什么程序做教育网站好建设网上银行个人网上银行登录
  • 做兼职网站简短的软文范例
  • 大企业网站建设多少钱多国语言外贸网站模板
  • 汕头网站优化公司科技企业网站如何建设
  • 微信网站建设方案苏州城乡建设网站查询系统
  • flashfxp 上传网站网站开发 图片储存
  • 能源门户网站建设株洲做网站公司
  • 省厅建设信息网网站帮忙注册公司要多少钱
  • 500强企业网站建设时网站建设公司管理
  • 广州做一个营销网站多少钱哪一家做网站好
  • 旅游网站建设与设计网站seo优化总结
  • 【源码解读之 Mybatis】【核心篇】--第7篇:ParameterHandler参数处理机制
  • 2025年教室护眼灯厂家权威推荐榜单:led教室灯/幼儿园教室灯/教室照明灯具源头厂家精选
  • 2025年自动定量灌装机厂家权威推荐榜单:称重灌装机/膏状灌装机/瓶灌装机源头厂家精选
  • 厨房电子秤芯片方案:SIC8833
  • 备份恢复:backup database format plus archivelog归档备份集路径与数据库format指定不一致
  • 泉州网站建设推广如何查网站是哪个公司做的
  • 论坛网站有哪些建设电子票务系统的网站需要多少钱