STM32假期总结

学习笔记

http://blog.csdn.net/believe_in_/article/details/79123428
http://blog.csdn.net/believe_in_/article/details/79146981
http://blog.csdn.net/believe_in_/article/details/79167064
http://blog.csdn.net/believe_in_/article/details/79211103
 

超声波测距

一、题目要求

使用32开发板,完成超声波测距串口实时显示;

二、题目相关知识点

a)     IO口的操作

b)     定时器

c)     串口

三、完成过程

在任务前期观看相关视频了解相关知识点,然后通过模仿程序步骤进行相关知识的加深和巩固。LED-à蜂鸣器——》按键——》时钟——》串口——》外部中断——》定时器——》看门狗;在看过定时器内容之后借助模板完了超声波测距前期任务,在中期的几天时间内完成了串口设置警报距离。

四、设计思路:

 

主要内容超声波测并警报


直观显示:串口实时监控

 

第一、测距:

      测距需要使用到定时器,利用定时器的输入捕获功能进行距离的计算;

第二、数据显示

             利用串口的显示配置显示超声波得到的返回值

      第三、警报

             在串口中设置距安全距离,并且利用超声波得到的值与之想比较,加上相关条件利用蜂鸣器进行报警。

第四、卡尔曼滤波

      减小抖动让显示状态更加稳定;

第五、OLED显示

近几天摸索了OLED的显示,尝试加上OLED的显示。虽然能够实现显示,但是对于它的工作状态不太清楚,接下在会继续了解,并进行下一步学习;同时做好复习;

 

总结:

      时钟、串口、外部中断、定时器内容较为复杂,想要完全掌握还需在后期的学期中经常使用,不断熟悉。

一、         使用库函数形式的程序编写,一定要细心,仔细,在已经封装好的库函数中有很多相似的库函数名,偶尔会遇到使用错误,但是系统不报错,这种情况下出现问题就比较难解决。找错过程很是艰难。

二、         在使用开发板时,例如使用定时器相关的引脚时一定要查看芯片的数据手册,里对于引脚的描述都很清楚。程序要与板子相对应。避免程序正确使用硬件连接错误。

三、         在使用相关模块时,应理解模块的工作原理及工作条件,一方面尽可能避免损坏模块,另一方面避免出现不必要的错误。

四、         对于这次的培训,由于超声波模块在之前的培训中已经有所了解,所以知道它的工作原理,完成测距的问题比较简单。但是对于串口发送数据设置警报距离却遇到了一些难题:

第一、 不清楚在串口接收数据之后在单片机内的存储形式

第二、 在单片机接收数据完成之后,如何把数据转化为有效数据

以上问题中,经过多次尝试终于发现了问题所在:

       串口接收的数据会以字符的形式储存在库函数中的数组中,方式:高位在前

       取有效数据,在数组获得数据后如何取得有效数据,然后串口显示。直接取字符取得的是字符对应的ASCII值,并不是真实值,但是可以利用这点。在取得字符ASCII减去48即可得到真实值。

五、         对于安全距离的设置所遇到的问题:

第一、 设置安全距离值会自增,以此累加

第二、 安全距离不可多次接受,即只能接收一个安全距离里的设置;而且会出现负值设置的为正值,但在显示时数据变成负值。(并非所设置数据的负值)

解决方法:

第一、 多次测试距离自增是因为上一次设置的值并未清除,以至于在后来的设置中在原来的基础上进行增长。

第二、 安全距离在接收第一次之后,再次接收出现了数据会出现意外值;

此问题是在上一问题解决后出现的附带为题,在处理数据时不够严谨出现漏洞。当数值从大变小时会出现差值并且是负的,在此基础上后来接收的数据都与问题。从而解决问题。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值