• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单片机上电运行后上位机串口发送特定的字符

小葱拌豆腐 2019-09-05 浏览量:863
单片机上电运行后上位机串口发送特定的字符,单片机接收到之后,程序里自己写的函数的某个参数就会发生相应的变化,这个参数变化之后再执行main函数,这个怎么搞,我在main函数的一开头写了if条件判断时候,发现程序不运行。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 首先,一般单片机只有一个main,而且运行都是从main开始的,所以你的逻辑需要调整一下。

    1.你需要把原来main的主要功能部分重新封装为另外的函数如oldmain,来作为调用入口,并且实现某个函数关键信息受某个变量控制(比如加一层封装依据某全局变量值来调用)

    2. 在新的main中实现接受上位机发送特定字符串

    3. 把接受的字符串作为关键信息予以记录(存入关键信息全局变量)

    4. 正式启动oldmain

    • 发布于 2019-09-05
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 串口用中断接收,然后当一帧结束后让让指定函数判断,或者通过标志位让检测函数轮训检测
    • 发布于2019-09-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 你得先让串口跑起来比如串口用中断方式

    建议你把判断的if语句加在while(1)那段

    这样if会反复判断否则一次判断不满足条件再不后续判断了那程序不就停在那了

    • 发布于2019-09-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 将现有的main函数改名为appmain。重新写一个main检测串口序列,检测成功后,调用 appmian就可以了。
    • 发布于2019-09-05
    • 举报
    • 评论 0
    • 0
    • 0

  • main函数就是程序一上电执行完必要的硬件初始化之后的最开始执行的函数,你不可能将你要的程序卸载main函数之前。但是单片机程序一般都会有一个死循环,你可以在死循环之前写一个接收串口数据的程序,最开始写初始化程序,初始化串口等必要的硬件,之后写一个循环等待串口数据,如果接受到了数据就跳出循环,执行死循环里面的内容
    • 发布于2019-09-07
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机上电运行后上位机串口发送特定的字符