(请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365)
YIE002开发探索之起篇
YIE002开发板,是我在撰写UEFI开发探索系列博客,以及编写《UEFI编程实践》的时候,做的一款开发板。
在UEFI下访问USB HID设备,需要一个自制的USB HID设备。最初的时候,我是使用了正点原子的探索者F4的板子,做了一个需要的设备。那个板子很大,在频繁带着它往返家和公司的过程中,终于厌倦了。想着是不是能做个方便携带、可以直接通过USB取电的小开发板,这就是YIE002开发板的来源。
我的需求,本来是只想做个USB HID设备,然后开发个Windows/Linux的上位机程序,以及UEFI下的上位机程序。在定义YIE002的时候,只提出了USB接口和LED灯的要求。将这个想法告诉了做硬件的朋友,他把按键、RS232串口、485串口和TTL串口都加上了,做成了一个不错的小型开发板。
这个过程,我在UEFI开发探索的博客中也曾经说过。既然拿到了这个资源相对丰富的小开发板,我就萌发了再开一个“嵌入式开发”的专栏,按照自己的设想,把一直以来这方面的开发,做个整理。
在以前的开发中,我一直都是使用STM32的Legacy Library进行嵌入式开发的。考虑到开发效率,正好趁此机会,开始尝试使用STM32 Cube MX进行代码的开发。所有开发的过程,将在博客中逐渐披露;代码整理好了后,也会在Gitee上给出。
1 开发板构思
如图1所示,是目前所构思的YIE002的结构图。
图1 YIE002结构图
主要包含以下硬件资源:
- 4个LED灯和1个电源显示灯;
- 3个按键;
- 三类 串口,包括RS232、485和TTL;
- USB 全速设备。
当前我在使用的YIE002开发板,其主芯片是STM32F103C8T6。以前曾使用过这个芯片,开发过一些公司的项目,相对比较熟悉。
不过,近期芯片市场动荡不安,也不知道是不是疫情的影响,STM的芯片供应非常不稳定。因此,我预备了另外一套,使用沁恒的CH32F103C8T6作为主芯片。这款目前还在开发,是否打样还在商量中。
当然,如果打样完成,将会在博客中针对两款都进行开发探索。目前的情况下,维持原有的计划,也即使用 STM32 Cube MX对YIE002进行各方面功能的实现。
2 YIE002-STM32型
作为开篇,本篇博客在后续可能会持续更新,一些常用的网站资源,会在此处贴出。
如图2所示,是使用STM32F103C8T6作为主芯片的YIE002开发板。
图2 YIE002-STM32型开发板
现在用的这款开发板,用了USB Type-B的接口,还得找根Type-B的线,有点不满意。下次重新打板,准备换成Type-A的接口。
STM32的开发,可以使用寄存器直接操作,一般很少有人这么做,需要学习的知识太多了;也可以使用库函数进行开发。官方给出的库函数,有Legacy Library和Cube Library两类。自从2014年ST公司推出STM32CubeMX之后,大部分的开发,都可以使用Cube Library来实现了。
我之前的代码,大部分是基于Legacy Library开发的。正好趁这个机会,用STM32CubeMX重写一遍。
常用网站和资料:
官网学习资料:https://www.stmcu.org.cn/document/list/index/category-657
视频学习:https://www.stmcu.org.cn/video/index/list/id-153/sort-new/style-grid?page=2
优酷学习视频:(蝴蝶粉丝视频库)https://www.youku.com/profile/index/?spm=a2hbt.13141534.1_1.d_2_2&uid=UNTM5NTAyMTky
《ARM Cotrex-M3权威指南(英文).pdf》和Cortex-M3权威指南(中文).pdf
《CM3技术参考手册.pdf》
《STM32中断优先级与相关使用概念.pdf》
《STM32中文参考手册_V10.pdf》
《STM32F103x8B_DS_CH_V10.pdf》
3 YIE002-CH32型
(待更新)