作为嵌入式软件工程师在项目开发时的一些易错总结-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.解释:https://ask.csdn.net/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)同时系统时钟配置也需要配置;
--------------------------------------------------------------------------------------------------------------        

        
 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值