700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 作为嵌入式软件工程师在项目开发时的一些易错总结-05

作为嵌入式软件工程师在项目开发时的一些易错总结-05

时间:2020-06-24 06:23:01

相关推荐

作为嵌入式软件工程师在项目开发时的一些易错总结-05

一、一个开关选择芯片引发的逻辑混乱问题

1.问题描述:初始化时,使用开关选择芯片,只能改变一边的状态;但是在运行过程中,可以分别控制两边;但是方向是反的;

2.当时脑子一团雾水,没有一点想法;

3.查看开关芯片手册,发现和自己所确定的并不是同一个芯片;原因是,本项目用了不只一个开关芯片,经验主义使用了另外一个芯片的手册;

4. 但是仔细查看芯片,发现只对回复有影响,对发送没有影响?另外在修改真值表后,问题还是存在;

5.又考虑开关芯片的开关变换时的时间是否有限制;增加延时函数,没有明显改变;

6.最后分别控制2边,发现程序只能控制同一边;这时猜测难道控制方向选了一边吗?-------------事实上真是这样;

7.最终思考总结

1)一个很简单的问题,却没有在第一时间想到问题所在,惭愧!!!

2)没有想到的原因:

---1.思路不清晰;

---2.感觉硬件有问题的概率大于软件出错的概率;

---3.实现现象的干扰(当然,解决后想想也是问题所在的表象);

---4.没有耐心的查看代码;

---5.还是需要在查找问题之前,将需要一步步查看的,写出来!!!再一步步排查;

二、错误信息: warning: #174-D: expression has no effect

1.解释:意思是此处的代码是无效的;

三、问题:在代码的左侧边框有一个三角警告while loop has empty body;但是编译完成后却没有;

1.解决方法:将这个警告语句的,下一条语句与警告语句对齐;

2.原因:猜测是编译器的的问题;

四、rt_thread_suspend();挂起函数不能挂起对应的函数?

1.解释:/questions/7384220;这篇文章讲解的很清晰;

2.结论;对于RT-Thread,就不要使用rt_thread_suspend()函数了;

五、关于串口使用过程中遇到的问题:

1.串口接收的数据在串口调试助手中显示的是乱码?

---1.疑惑:在工程1中,串口的收发没问题;工程2的串口驱动是直接拷贝的工程1;

---2.疑惑:仔细查看串口初始化、并未发现错误;

2.解释

---1.在工程1中串口输出正常,说明硬件正常、软件驱动正常;

---2.查看2个工程的串口寄存器,发现2个工程的串口波特率设置的值不一样;一下反应拿过来可能是晶振设置的问题;

---3.因为硬件的晶振是12M的,但是工程2中的晶振设置的是默认的8M,从而导致串口输出的是乱码;

六、串口只返回一个字节,并且“usb-串口”模块的RX灯常量;

1.解决方法:将VCC连接到5V的跳线帽,连接到3.3V上;

2.原因:在“usb-串口”模块上,都有关于VCC选择5V还是3.3V的选项;具体操作是使用跳线帽将相应的引脚连接;

芯片供电是3.3v,所以“usb-串口”模块上的基准电压要选择3.3v

----------------------------------------------------------------------------------------------------------

串口使用过程中会出现的问题:

一、硬件

1.USB转串口模块

1)驱动是否安装

2)模块的VCC可以通过跳线帽选择3.3V、5V;跳线帽根据芯片的供电电压确定;

2.串口工具配置

1)端口号、波特率、数据位、停止位、校验位、硬件流选择;

二、软件

1.程序中串口配置

1)引脚配置;

2)端口号、波特率、数据位、停止位、校验位、硬件流选择;

3)串口使能;

4)如果使用中断接收,还需要进行串口中断的设置;

2.晶振

1)程序的晶振需要根据板子的实际晶振修改;

2)同时系统时钟配置也需要配置;

--------------------------------------------------------------------------------------------------------------

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。