美文网首页
蓝桥杯——停车场我存在的错误点

蓝桥杯——停车场我存在的错误点

作者: 你的优先级最高 | 来源:发表于2018-03-03 21:59 被阅读0次

程序设计中遇到程序逻辑问题以及数值不对我们可以通过串口来进行调试,这样可以很明确程序的走向以及我们错在什么地方,但是有时候我们会发现一些很奇怪的问题,调试出来也不知道为什么。

由于停车场考的是串口,串口发送数据时必须要的,在写程序时遇到了以下几个问题:

  1. 一开始程序可以正常执行,但是加上 sprintf 之后,外加 buf 缓存数据,但是我的数组大小是20,在LED上显示数据,但是程序卡死,我当时有注释找问题,找到问题所在,但是不知道是这个buf的大小太小了,我就去设置了全局变量(下一个问题也出现在这个地方),程序正常运行。

  2. 改成全局变量之后运行顺畅,后面问题又来了。在程序中有设置费率以及汽车ID两个功能,都用到串口。这个难度不大,但是我在写完之后发现数据处理之后的数据不对,但是有说不出来哪里不对,当时也在模拟考,也就没又多管。但是在检查的就是发现:第一次发送数据单片机不能正常识别,第二次发送有时正确,有时不能识别,但是我直接在串口中断里面完全返回发送过去的数据,完全正确,这问题就出来了,我就猜,我的处理函数错了

在晚上我再来看这个程序的时候,我发现我改过处理函数也不正确,然后使用串口进行一步一步的调试,然后发现数据处理错误,应该说是不知道哪里跑来的数据。然后我也不知道什么问题,就去随意加大哪些全局数组的数组大小,没想到,成功了,然后一看,**我把 u8 buf[20];改为u8 buf[30],没错就是这样成功了;

反思:

  1. 写程序考虑数组的大小的意义,特别是有sprintf()函数时,有时候我们多打了个空格,少打了个空格就会超过数组的大小:局部变量容易让程序卡死,全局变量就有可能造成溢出,就相当于混进其他内存地址去了,就会让程序出现莫名其妙的错误。但是写单片机程序遵循一个变量的数据类型能小尽量小的原则,毕竟资源有限;

  2. 写程序遇到问题要会用合适方法去找问题

相关文章

  • 蓝桥杯——停车场我存在的错误点

    程序设计中遇到程序逻辑问题以及数值不对我们可以通过串口来进行调试,这样可以很明确程序的走向以及我们错在什么地方,但...

  • 蓝桥杯真题题解收藏

    收藏一些在网上发现的,觉得写的不错的蓝桥杯真题题解内容,给学生练习备战蓝桥杯时所用。2020蓝桥杯省赛第二场C组_...

  • 蓝桥杯

    明天就是蓝桥杯省赛了,今天早点睡吧,没事就是一个小比赛,没什么的。大不了就去打打酱油吧。早早洗漱好,就上了床,可是...

  • 蓝桥杯

    一周前才开始意识到蓝桥杯又要来了,赶快找大佬聊聊怎么准备 “只要你掌握了最近十年的7道题以上省一几乎没问题 4-6...

  • 蓝桥杯试题——FJ的字符串

    title: 蓝桥杯试题——FJ的字符串date: 2019年2月17日20:33:05tags: 蓝桥杯试题 算...

  • 【蓝桥杯python】小白的艰难刷题之路。A+B问题

    先给大家献上蓝桥杯的练习系统,因为我是新手刷题人所以先更新一下基础练习的普通试题集。“蓝桥杯”练习系统 (lanq...

  • 春节过后的学习

    春节假期过后,我的主阵地就从洛谷变成了蓝桥杯的习题集,但是我发现蓝桥杯好坑,学校要是没有购买VIP我们有些题是不能...

  • 蓝桥杯 基础训练 Python版 0

    呃,是不是这篇文章应该叫 蓝桥杯之从入门到放弃 ? 感谢蓝桥杯,让我学了Python。但是由于近期种种事情,已经打...

  • 蓝桥杯感想

    这个项目是我们团队经过了很多努力做出来的,期间经历了很多挫折。感谢有指导老师们和同学们的陪伴。我们最后还是坚持下来...

  • 蓝桥杯备战

    前不久接触到蓝桥杯,有一个蓝桥杯组委会的老师来我们学校宣讲,鼓励我们参赛,虽然是大一,但是对计算机编程很感兴趣,还...

网友评论

      本文标题:蓝桥杯——停车场我存在的错误点

      本文链接:https://www.haomeiwen.com/subject/vyyxfftx.html