visualStudio 2008写的串口接收发送函数,当接收来的数据太快会闪退,5ms一次,一次10个字节,怎么解决闪退?

夏天的馋 夏天的馋 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

这是我的串口接收函数

OnComm()
{
 if(Rx_Enb==0)
 {
    // TODO: 在此处添加消息处理程序代码
    unsigned char i=0;
    VARIANT variant_inp;   //Variant 是一种特殊的数据类型,除了定长String数据及用户定义类型外,可以包含任何种类的数据。
    COleSafeArray safearray_inp;       
    BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integer that is not signed.     
    CString strtemp;    
    memset(Screen_Val,0,sizeof(Screen_Val));
    if(m_ctrlComm.get_CommEvent() == 2) //事件值为2表示接收缓冲区内有字符     
    {          

        //以下你可以根据自己的通信协议加入处理代码 
        variant_inp=m_ctrlComm.get_Input();        //读缓冲区  
        safearray_inp=variant_inp;                //VARIANT型变量转换为ColeSafeArray型变量
        len=safearray_inp.GetOneDimSize();        // 每次得到有效数据长度        
        for(k=0;k<len;k++)             
            safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组         
        for(k=0;k<len;k++)                    //将数组转换为Cstring型变量    
        {           
            RxValue_Lc++;
            BYTE bt=*(char*)(rxdata+k);//字符型      
            strtemp.Format(_T("%x "),bt); //将字符送入临时变量strtemp存放   
            m_strRXData+=strtemp; //加入接收编辑框对应字符串 
            Screen_Val[k]=(unsigned int)bt;
            if(RxValue_Lc==14)
            {
              strtemp.Format(_T("\r\n"));  
              m_strRXData+=strtemp; //加入接收编辑框对应字符串   
              RxValue_Lc=0;
              RxV_Clear++;
            }
        }
              strtemp.Format(_T("\r\n"));  
              m_strRXData+=strtemp; //加入接收编辑框对应字符串  

    }    
    UpdateData(FALSE); //更新编辑框内容
        if(RxV_Clear>28)
        {
           m_strRXData="";
           UpdateData(FALSE); //更新编辑框内容
           RxV_Clear=0;
        }
 }
}

闪退只报这个,我降低下位机发送速率就没问题,但不能降低

线程 'Win32 线程' (0x5734) 已退出,返回值为 0 (0x0)。
线程 'Win32 线程' (0x6dfc) 已退出,返回值为 0 (0x0)。

STATUS_STACK_BUFFER_OVERRUN encountered
线程 'Win32 线程' (0x6bc4) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x4d44) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x5eb8) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x65b8) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x53c0) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x13ac) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x5aec) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x5188) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'ime_bundle' (0x4c6c) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x5e2c) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x67c4) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x11c8) 已退出,返回值为 -1073740791 (0xc0000409)。
线程 'Win32 线程' (0x6dcc) 已退出,返回值为 -1073740791 (0xc0000409)。
程序“[20820] test.exe: 托管”已退出,返回值为 -1073740791 (0xc0000409)。
程序“[20820] test.exe: 本机”已退出,返回值为 -1073740791 (0xc0000409)。

...全文

相关推荐

论文复现基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化(Simulink仿真实现)

内容概要:本文针对“基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化”这一主题,开展Simulink仿真实现与技术复现研究。通过构建全桥LLC谐振变换器的详细仿真模型,深入探讨在不同负载工况(如轻载、重载、待机与运行模式切换)下,如何结合变频控制(FM)与移相控制(PSM)的协同策略,优化系统动态响应的平稳性与效率。研究重点在于设计合理的控制逻辑,解决模式切换过程中可能出现的电压电流冲击问题,提升系统的稳定性和电能质量。文中系统阐述了控制策略的设计原理、关键参数的整定方法,并通过仿真结果验证了该协同控制方案在抑制瞬态扰动、实现无缝切换方面的有效性,完整复现了高水平学术论文中的核心技术路线,为电力电子变换器的先进控制提供了可复现的实践范例。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员及从事开关电源、新能源变流器开发的工程师,尤其适合具备一定Simulink仿真经验与电力电子拓扑分析能力的专业人士; 使用场景及目标:①深入理解全桥LLC变换器在多模式运行下的变频与移相协同控制机理;②掌握在Simulink中对复杂谐振变换器进行建模、控制算法实现与仿真验证的全流程方法;③为学术论文写作、科研项目申报或高性能电源产品的工程开发提供可靠的技术参考与仿真基础; 阅读建议:建议结合所提供的Simulink模型文件与技术文档进行同步实践,重点关注变频与移相控制的切换逻辑、参数配合关系及过渡过程的动态特性,可通过调整负载条件观察系统的响应变化,以深化对模式切换平滑性实现机制的理解。

大龙不吃小鱼干

高校技术转移办公室人员如何高效完成科技成果全周期管理?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

可视化原型素材ppt格式

可视化原型素材ppt格式

clhqianqi

氢氟醚:绿色高效的氟化解决方案.docx

氢氟醚:绿色高效的氟化解决方案.docx

行业报告QY

2026最新广西省行政区划矢量图层-省市县乡镇四级行政区划数据下载

2026最新广西省行政区划矢量图层数据,包含省、市、县、乡镇四级行政区划数据,wgs84坐标

gis收藏家
评论
收藏 已收藏
分享
返回顶部
夏天的馋
新手乐园 33,315 成员 41,769 内容