*阅读说明:以下仅做简要总结展示,排名不分先后。详细评测描述、源码、资料等请戳原链接查看。
本章节针对GPIO的输入输出进行系统的学习和测试,其实主要就是GPIO的输出控制,对应的就是LED的控制,对应输入的采集就是板载的按键,本开发板板载了4个不同颜色的LED以及4个用户按键,复位按键采用的是不同形式的按键,可以有效避免误触的发生。
我们在上一部分的基础上增加定时闪烁功能,例如按键按下时对应的LED开始闪烁,再按下时关闭闪烁功能。主要设计的两部分,一个是定时器的初始化以及中断处理,另一个就是按键控制的逻辑判断。
为了让后面的测试更加舒畅,先实现一下串口打印功能,串口打印的重点就是串口功能的实现,厂商也是比较注重这一点了,对于每一个工程都是有一个通过Jlink接口的串口打印功能,不过我连接在Wch-link上并没有实现,那么我们就用本身个串口type口实现。
定时器的PWM(脉冲宽度调制,PulseWidth Modulation)输出功能是微控制器中一个非常重要的特性,广泛应用于电机控制、LED亮度调节、音频信号处理等领域,本章节的功能展示主要就是通过LED实现呼吸灯进行的。
本次测试驱动使用的显示模块使用的是1.54寸TFT液晶显示屏,主要参数包括240*240分辨率,确保图像细腻且细节丰富。其核心主控芯片为ST7789,这款芯片以其强大的驱动能力和低功耗特性,广泛应用于各类小屏中。
USB是本开发板一个重要的功能,不过通过查询已有的例程中并没有有关USB的例程,我们只能通过其他途径获取,灵动微官网可以生成专用的SDK,其中就包括基于tinyusb的hid_keyboard例程我们参考这个例程进行设计,通过这个例程把我们的开发板枚举成功。
通过板载串口CH340和单片机串口(PA9,PA10)通讯。
通过ADC1获取板上3个电位器的实时电压参数并打印串口显示。
在MM32F5330MCU上移植FreeRTOS,并运行2个task,打印信息。
我们用MM32F5333开发板的USB功能+ADC实现障碍物检测和发送跳跃指令让单片机自己玩。
拿到板子之后首先是搭建MM32的开发环境。
看了一下板子上是带有一颗SPI的FLASH芯片W25Q80B,所以就测试一下F5333的SPI功能。
这里准备测试一下通用异步收发器UART,实际板子上的USART1已经做成了串口调试打印功能,可以往PC端打印程序调试信息。
USB协议复杂度较高,自己实现不太现实,利用TinyUSB可以大大降低开发难度。但是自己移植TinyUSB也是需要花费一些力气的,幸好灵动微电子官方已经做好了移植,那就不需要重新造轮子了。
描述一下步骤吧,这个网上比较多: 1、安装VScode 2、安装编译器MinGW 3、安装cmake 4、VSCODE中安装cmake、c/c++、cmaketools三个插件 5、安装交叉编译工具:arm-gnu-toolchain-13.2.rel1-mingw-w64-i686-arm-none-eabi.exe 6、安装ninja
实现向spi flash写入中文字库bin的的功能。
继续实现ST7735 SPI屏驱动和显示中文,并通过KEY控制中文文本翻页浏览。
SPI_InitStruct.SPI_BaudRatePrescaler设置越小,SPI频率越高,16好像是极限了,不能再小了。 SPI1用于驱动板上的flash了,所以驱动LCD要用SPI2。
使用例程完成了简单的点灯测试。
新建个工程来进行测试,完成基础题目中的其中两项: 通过GPIO端口控制LED; 使用外部中断实现按键控制LED状态。
实现与PC端的基本串口通信;使用定时器实现计数,并在串口输出计数值。
FreeRTOS是一个实时操作系统,适用于微控制器和微处理器,使小型低功耗设备的编程变得更容易。
MM32F5330内置 2 个 I2C 接口, 能够工作于多主模式或从模式, 支持标准(100 Kbps)、快速模式(400 Kbps)和快速扩展模式(1 Mbps), 支持 7 位或 10 位寻址。 支持SMBus。所有的 I2C 接口都可以使用 DMA 操作。开发板上集成了一颗EEPROM,例程里有它的驱动代码,这里就不再重新驱动了,改用I2C来驱动OLED。
SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线(CS、SCK、MOSI、MISO),根据实际使用情况可以只用其中的2根或3根。
从官网下载的LibSamples_MM32F5330中没有USB的驱动代码,MM32官方在论坛里发过MM32F5270的USB驱动视频教程,看视频才知道还有MindSDK。
利用板载的CH340串口芯片完成单片机的串口通讯功能,实现基本的发送接收功能,并且将PC端发送来的数据,返回至串口中断。
灵动Mini-F5333没有板载MM32的调试器,我们需要自行的找到合适的调试器,这里我所使用的是DAP的调试器。
利用板载的CH340串口芯片完成单片机的串口通讯功能,并且数据发送的数据在PC端的串口工具中显示。
利用PWM信号控制电机速度。
利用ADC模块测量输入电压的,并通过串口输出测试结果。
利用定时器实现1s计数,并在串口输出计数值。
利用USB模拟HID功能,通过键盘或者按键移动鼠标。
环境搭好了,来编写一下呼吸灯的代码。
开箱后先下载个厂家提供的DEMO程序,这里选择的是一个LED闪烁的程序。
|