目录
MCU:STM32F107
开发环境:CubeMX V6.1.1+Keil MDK V5.26
一.使用CubeMX配置STM32
1.FreeRTOS配置,如果只是做一些验证或者测试,基本上使用默认配置即可:
2.USB外设配置:
USB_OTG配置为USB_HOST:
开启USB中断,注意中断优先级设为5,有时默认的中断优先级为0,由于引入RTOS处理USB且RTOS管理的中断优先级为5级以下,0优先级的USB中断会导致程序卡死:
配置USB_HOST所支持的设备类型。由于我的程序内USB还做通讯使用,所以配置支持所有类设备,如果只做U盘读取,配置支持MSC类即可,需要注意的是USB任务堆栈别太小,否则读写U盘时容易卡死:
3.FATFS配置:
有了USB接口、有了U盘,那么剩下的就是使用文件系统来读写U盘了,所以我们对U盘的读写都是通过FATFS文件系统的API来完成的。
同样,几乎使用默认配置即可,不过要想支持中文,CODE_PAGE一定要设为GBK简体中文。
其他的一些外设配置、时钟配置不多说,最后生成代码前,要把系统的堆栈空间设大一些,否则同样容易卡死,或者大容量的U盘可能会无法正常识别:
点击生成代码,剩下的就得啃代码了。