拿到板卡有一段时间了,由于年底工作比较繁杂,终于有空隙来看看咱们的这次的开发板。但是先移植什么项目呢?
思来想去,还是先移植一个稍许简单的项目吧(也是比较赶时间(^_^))。
一、项目介绍项目名称:音频控制器
项目功能:1.通道切换
2.音量调节
3.对应显示
二、功能移植1.1 遇到点问题
项目应用必不可少的自然是串口,市面大多的串口通信基本都是基于modbus的,这里本来打算移植freemodbus的,移植过程中出了一些状况。可能是时间仓促,没有完全看手册,导致了如下局面:
通过下载源码和参考例程,将所有代码基本都移植完成,然而在通讯时,发送一组数据,MCU应该进入接受中断,等待数据接收并校验和装载返回的数据后,判断是否接收完成(TC寄存器),或者中断是否为空数据(TXE寄存器)。可是在MCU收到一个字节后,立刻去判断TC或者TXE。然后导致卡死在freemodbus的发送状态机的断言处(assert( eRcvState == STATE_RX_IDLE );)。后来经过多次调试,发现TC或者TXE寄存器无论在之前如何清零或者设置不使能,MCU会在一个程序执行完立刻被置位。原因可能如下手册所说,硬件自动处理,那就根本没办法了,后来发现案例接收过程中是加了while的,所以freemodbus的程序无法执行,由于时间紧急,所以暂且放弃了,改为借鉴案例的方法。
1.2 借鉴案例
针对案例,是接收什么数据,然后原样发出去。暂且可以用用。所以是直接复制粘贴了
2. 通道切换
电路设计为简单的继电器控制,由于保密原因,不能这里展示。控制也就是简单的GPIO电平控制
3. 音频控制这里电路设计使用了一组模拟开关,实现了音频功放中使用滑变电阻调节音量的功能。模拟开关为使用三组GPIO输出组合,使模拟开关输出八种情况,类似38译码器。电路图还是需要保密
4. OLED显示OLED是我们自行设计的,也是长期使用一款产品了。算是比较成熟的。按照对IIC的理解,移植起来没有什么问题。不过对于OLED其实也没必要使用内置IIC控制器。因为时序比较简单。这里简单贴几行代码。
我们显示的内容由于功能的单一,显示的也比较简单
三、评测总结对于如上简单的项目而言,主频的高低,不会太影响项目执行。不过180M确实比较好的,等到确实有用时,没有就会很可惜了。还有在配置串口的时候发现,GPIO等功能映射是非常灵活的,这在后期应用时也是很友好的。就目前体验来看,MM32F5333这颗芯片,还是很符合我们大部分项目需求的。
四、相关资料modbus比较好的讲解资料: https://www.ni.com/zh-cn/innovations/white-papers/14/the-modbus-protocol-in-depth.html
modbus官方资料:http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf
freemodbus源码详细介绍:https://blog.csdn.net/u014748120/article/details/80313215
作者: 二月半, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-1862109.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论