《来实战》之智能车开源项目05:我们的程序编写是一个什么样的框架?
发布时间:2020-03-18
分享到:
《来实战》之智能车开源项目05:我们的程序编写是一个什么样的框架?
发布时间:2020-03-18
分享到:

更多项目进度详情分享:智能小车开源项目文章汇总

项目资料:电路城“来实战”多功能智能小车项目设计方案资料(持续更新)

广大的工程师及电子爱好者朋友们,大家好!

前面我们也已经介绍过了,我们使用的是STM32F103C8T6这款广泛应用的芯片,如果没有接触的同学建议根据正点原子或者野火的学习视频进行基础学习,讲解的非常详细。这里只给大家几点学习的建议:

  1. 徐徐渐进,不要急于求成,正确每天搞懂一点,也可以很快的学习完。有句“万事从点灯开始”这样一句话,我觉得非常有道理。
  2. 重要的部分重点突破,比如时钟树,花一天时间也是值得的,还有熟悉APB1、APB2的挂的外设;各个通信协议的时序这些也非常重要,在程序编写都要按照这个执行的,否则肯定会有问题。
  3. 多动手实践,现在一块开发板的价格已经不贵了,特别是这些基础的开发板。我有一个好的建议,购买开发板以后除了学习,还可以抄一个板,这样绘制原理图,设计PCB的能力都会有巨大提升。我们电路城就有很多小伙伴抄的开发板资料上传分享给大家,比如:

          STM32F407ZET6PCB 四层STM32F407ZET6开发板PCB

          STM32单片机 STM32F103RCT6 MCU开发板 AD设计硬件原理图+PCB文件

  1. 当你觉得已经掌握这系列芯片的时候,一定要去动手做一个项目看看,做一个简单的遥控小车都是可以的,这就是学以致用,只有这要才会发现自己问题,还有哪些地方不知道,否则就算学完了也是纸上谈兵。

我们进入今天的正题,我们的程序编写是一个什么样的框架?这个也是动手写程序之前的一个很好的问题,只有先确定框架,程序才会有条理。我们这个小车要实现循迹、避障、语音识别、通信、电机驱动,后面还有图像处理等等。

首先我们先确定这些功能需要用的单片机硬件资源,比如语音识别,我们使用的是模块套件,这个时候就要使用串口在接收和发送数据,所以这里要留下一个串口的硬件资源。程序上就要写串口的接收发送以及中断,具体步骤比如:使能时钟、GPIO端口管脚的初始化、串口参数的初始化、中断的初始化、中断处理函数也就是怎么处理数据等等。这些就是一个思路,硬件要那些资源,软件怎么配合,开始之前就要思考这些。

再比如与遥控的通信,我们采用NRF24L01模块,这个通信协议是SPI通信,SPI口为同步串行通信接口,最大传输速率为10Mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。配置SPI的程序就有整整九条,后面还有读写程序,所以配置SPI就要比串口更复杂一点了,以后在我们的程序里会详细编写和注释清楚。还有我们的I2C通信,本方案我们主要是用在遥控器的显示上,使用了0.96寸的OLED屏。

我们的遥控板和主控板不同的是重要的还有ADC的采集和数据的处理,这也是非常重要的一个知识点。所以程序在我们确定好硬件使用资源后,就可以制定框架进行程序编写了。

 

开源项目沟通交流群,马上扫码加入!

想为我们开源项目出谋划策?马上扫码加入开源项目专家智囊团微信群,需要备注“专家智囊团:姓名+擅长领域+所在地区”,我们会尽快审核您的身份:

开源项目贡献者名单荣誉榜

(马上加入我们,开源项目等你来贡献智慧...)

。。。 。。。

加入微信技术交流群

技术交流,职业进阶

关注电路设计技能公众号

了解最新技术方案

加入电路城 QQ 交流群

与技术大牛交朋友

讨论