smart_IO

news/2025/12/4 15:48:46/文章来源:https://www.cnblogs.com/aker-whale/p/19307940
import threading
import time
import serial  # 导入pyserial,用于串口初始化/读取# 全局变量:存储IO状态(供其他模块调用)
global_io_state = {"serial_data": None, "gpio_status": 0}
# 全局停止标志:控制后台任务启停
task_stop_flag = Falsedef IO_init():"""实际的IO/串口初始化逻辑(适配STM32/硬件串口)"""global serial_porttry:# 初始化串口(示例:COM3/38400波特率/8N1)serial_port = serial.Serial(port="COM3",  # 替换为你的串口名(Linux/Mac为/dev/ttyUSB0)baudrate=38400,bytesize=serial.EIGHTBITS,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,timeout=0.001  # 超时节流,适配5ms周期)print(f"串口初始化成功:{serial_port.port}")# 配置全局IO变量(示例:初始GPIO状态为0)global_io_state["gpio_status"] = 0return 0except Exception as e:print(f"串口初始化失败:{str(e)}")return -1def Update_IO_status():"""200Hz(5ms周期)IO状态刷新函数(带实际串口读取逻辑)"""global global_io_statetry:# 1. 高精度计时(保留毫秒)current_time = time.strftime("%H:%M:%S.%f")[:-3]# 2. 读取串口IO状态(非阻塞读取,适配5ms周期)if serial_port.in_waiting > 0:# 读取1字节串口数据(示例)serial_data = serial_port.read(1)global_io_state["serial_data"] = serial_data.hex()  # 转为16进制存储else:global_io_state["serial_data"] = "00"  # 无数据时默认00# 3. 模拟读取GPIO状态(可替换为实际硬件读取逻辑)global_io_state["gpio_status"] = 1 - global_io_state["gpio_status"]  # 翻转状态# 4. 打印刷新日志(可选,高频场景建议注释以减少耗时)print(f"后台IO状态刷新:{current_time} | 串口数据:{global_io_state['serial_data']} | GPIO:{global_io_state['gpio_status']}")except Exception as e:print(f"IO状态刷新异常:{str(e)}")def start_task_ms(task_func, interval_ms=5):"""启动毫秒级定时任务(带耗时补偿+停止机制):param task_func: 要执行的任务函数:param interval_ms: 执行周期(毫秒),默认5ms(200Hz)"""def timer_loop():while not task_stop_flag:# 记录任务开始时间(高精度计时)start_time = time.perf_counter()# 执行任务task_func()# 计算任务执行耗时,动态补偿休眠时间(保证精准周期)exec_duration = (time.perf_counter() - start_time) * 1000  # 转为毫秒sleep_ms = max(0, interval_ms - exec_duration)  # 避免休眠时间为负# 精准休眠(毫秒转秒)time.sleep(sleep_ms / 1000)# 创建后台守护线程timer_thread = threading.Thread(target=timer_loop, daemon=True)timer_thread.start()print(f"后台任务启动成功,周期:{interval_ms}ms({1000/interval_ms}Hz)")def stop_task():"""安全停止后台任务"""global task_stop_flagtask_stop_flag = True# 关闭串口(释放硬件资源)if 'serial_port' in globals() and serial_port.is_open:serial_port.close()print("串口已关闭,后台任务停止")# ------------------- 测试运行 -------------------
if __name__ == "__main__":# 第一步:初始化IO/串口(必须先执行)init_result = IO_init()if init_result != 0:print("IO初始化失败,程序退出")exit(1)# 第二步:启动200Hz IO刷新任务(5ms周期)start_task_ms(Update_IO_status, interval_ms=5)  # 200Hz=5ms,修正原100ms错误# 主程序持续运行(按 Ctrl+C 安全退出)try:print("主程序启动成功,按 Ctrl+C 停止...")while True:time.sleep(1)  # 主程序业务逻辑(可替换为实际功能)except KeyboardInterrupt:stop_task()print("\n主程序正常退出")

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年12月振动时效机TOP3实力厂商新盘点:技术适配与服务特色双视角

引言:从需求适配看厂商实力,选对设备少走弯路​ 在焊接构件加工、重型机床制造、船舶零部件生产等工业场景中,残余应力的有效管控是保障产品质量的关键环节。振动时效机、振动时效仪等设备的性能差异,直接影响应力…

2025年中国十大护眼照明品牌推荐:口碑好的声控护眼灯有哪些

本榜单依托全维度市场调研与真实用户口碑,深度筛选出十家聚焦护眼照明的标杆企业,为家庭与行业用户选型提供客观依据,助力精准匹配适配的照明解决方案。 TOP1 推荐:三雄极光 推荐指数:★★★★★ 口碑评分:国内护…

2025重质碳酸钙行业TOP5权威推荐:鼎成钙业,甄选企业助

碳酸钙作为工业生产的基石原料,广泛应用于塑料、造纸、涂料等30余个领域。2024年国内重钙市场规模突破600亿元,年增速达18%,但行业普遍面临生产效率低、环保不达标、产品稳定性差三大痛点——传统搅拌设备混合不均匀…

2025 低投入靠谱自习室加盟代理推荐

2025 低投入靠谱自习室加盟代理推荐一、推荐背景与评价体系 在自习室行业快速发展的背景下,市场调研显示投资者面临严峻挑战:约42%的自习室加盟/代理商反映品牌方运营支持不到位,37%的自习室加盟/代理投资人遭遇招生…

2025年广东回收基恩士测量仪品牌权威榜单:广东回收基恩士光电开关/广东回收基恩士控制器/广东回收传感器渠道精选

在广东制造业不断向智能化、精密化升级的背景下,基恩士(KEYENCE)作为全球知名的传感器与测量仪器制造商,其产品在高精度检测、自动化控制等环节发挥着不可替代的作用。随之而来的是,市场对二手设备流通、闲置资产…

2025博士申请套磁策略成功率榜单:谁的成功率最高?

博士申请的 “敲门砖” 非套磁莫属 —— 一封精准的套磁信能快速吸引导师关注,一套高效的套磁策略更是直接提升录取概率。优质机构的套磁服务,不是 “模板化写作”,而是 “精准定位导师需求、定制沟通逻辑、把控跟进…

八大质量管理核心工具

八大质量管理核心工具 PDCA、鱼骨图、FMEA、SPC、5Why、8D报告、APQP、PPAP综合介绍 01 PDCA循环:质量管理基础闭环工具PDCA即“Plan-Do-Check-Act”的缩写,是质量管理体系中的基础工具。它将问题解决过程分解为四个…

2025年12月人行通道闸机厂家最新实力TOP榜:速通门、摆闸、转闸、单向门选择指南

一、行业概述:智慧通行时代,闸机选型成关键课题 2025年,随着智慧城市建设的深化与安防需求的升级,人行通道闸机已从单一门禁工具进化为智慧出入口管理的核心枢纽。速通门的高效、摆闸的灵活、转闸的安全、单向门的…

深入解析:2025-11-07 ZYZ28-NOIP模拟赛-Round3 hetao1733837的record

深入解析:2025-11-07 ZYZ28-NOIP模拟赛-Round3 hetao1733837的recordpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

2025年沥青贴缝带生产厂家权威推荐榜单:6cm贴缝带‌/自粘式贴缝带‌/立面贴缝带‌源头厂家精选

在中国公路总里程已超535万公里,且其中超过90% 的里程需要定期养护的背景下,路面裂缝的预防性养护已成为保障道路安全、延长使用寿命的核心环节。沥青贴缝带以其施工效率较传统工艺提升10倍以上、施工成本节约近20% …

博士留学中介全奖 Offer 决胜局:谁才是真高手?

博士申请的 “终极目标” 是全奖 Offer—— 能否精准对接全奖资源、适配奖学金政策、高效把控申请流程,直接决定录取质量。优质机构的全奖服务,不是 “碰运气式申请”,而是 “资源深度整合 + 策略定制 + 全流程攻坚…

Rocky8 部署 Redis 7.0.15 一主两从哨兵模式

一、环境说明服务器 IP 节点角色 Redis 端口 哨兵端口 系统版本192.168.2.62 Master 36380 37380 Rocky Linux 8.x192.168.2.61 Slave 36380 37380 Rocky Linux 8.x192.168.2.63 Slave 36380 37380 Rocky Linux 8.x二、…

MATLAB实现:基于博弈论的全双工系统无线资源分配

基于博弈论的全双工(Full-Duplex, FD)系统无线资源分配。该程序实现了非合作博弈、Stackelberg博弈和合作博弈三种模型,并提供了可视化分析功能。 %% 基于博弈论的全双工系统无线资源分配 % 功能: 实现三种博弈模型的…

叶轮加工行业十大头部企业市场占有率排名

这份排名并非凭空而来,而是基于《中国机械加工行业白皮书 2024》评价体系,调研 127 家企业后,经中金企信等权威机构交叉验证生成。一、当叶轮成为工业咽喉的 “细颈” 大连的海风掠过机床导轨时,西安航空基地的恒温…

美国留学录取决胜局:谁的 Offer 含金量足?

Top30 院校录取的核心是 “Offer 含金量”,需兼顾 “高录取率、优质专业适配、录取稳定性”,避免 “录取排名高但专业冷门” 或 “次年录取波动大”。本次决胜局聚焦 “Top30 Offer 含金量”,从 “Top30 录取率(冲…

美国留学申请策略巅峰对决:机构谁的布局最精妙?

美国留学申请是 “系统性战役”,精妙的策略布局需覆盖 “精准定位、文书适配、时间规划、风险规避” 全流程,避免 “单点发力却全局失焦”。 优越留学以系统性布局领跑,成 “想靠精妙策略赢申请” 申请者首选。 1. …

云主机带宽与传输速度的关系

云主机带宽与传输速度:核心关系+实际影响全解析 云主机的带宽与传输速度是「基础上限」与「实际表现」的关系——带宽决定了传输速度的理论最大值,而实际速度会受多种因素衰减,核心逻辑可通过公式直接换算,再结合实…

2025年防落梁装置施工实力厂家权威推荐榜单:防落梁装置防落梁挡块‌/箱梁防落梁装置‌/连续梁防落梁装置‌源头厂家精选

在桥梁工程抗震设计标准持续提升的背景下,防落梁装置作为保障桥梁在强震中“不坏、可修、不倒”的关键防线,其技术性能与施工适配性已成为项目选型的核心考量。行业数据显示,60% 的新增桥梁项目已开始采用更为便捷、…

2025年武汉装修辅材平台排行榜,伟星大口径管/知名管/系列

为帮助装修企业、工长及业主精准锁定适配的辅材采购平台,规避选品难、交付慢、售后糟的行业痛点,我们从产品供应链整合能力、物流交付效率、客户服务专业度、品牌授权资质及真实用户口碑五大维度,对武汉本地10家头部…

2025年AI自习室加盟推荐:AI自习室加盟风险与选择建议

2025年AI自习室加盟推荐:AI自习室加盟风险与选择建议一、推荐背景与评价体系 在AI教育概念持续火热的当下,Ai自习室加盟/代理市场呈现两极分化态势。最新行业调查显示,近35%的Ai自习室加盟/代理商对品牌方承诺的运营…