工程师干了几年后,基本会有小外包的生活,算是赚外快吧,搞小钱改善伙食,嘻嘻。。。。最近有个客户找到我,说是否通过ST的单片机搞个U盘功能,有些文件通过U盘拖拽放入的方式比较方便。当时就有点懵了,这从来没这么用过,后来查查资料,还真网上有这么玩的,所以就记录下自己的实现过程既然要搞,一般过程都是网上找个demo,看懂了然后自己改改,我也是这么干的。。。。
改芯片相关配置demo使用的芯片跟我目前的不一样,所以第一步把配置相关的改改
KEIL中将芯片切换为自己的芯片型号
更改系统配置宏
STM32F10X_LD、STM32F10X_MD和STM32F10X_HD跟MCU的内部FLASH容量有关
更改时钟配置DEMO中的硬件外部时钟使用的是8M的,客户板卡用的12M的,需要配置时钟
更改相关宏
在stm32f10x.h中更改119行8000000为12000000. STM32F10X_CL为互联型芯片,我这里用的不是。
改系统时钟配置
因为DEMO使用的系统时钟是72M的,所以找到宏定义位置
修改RCC_CFGR_PLLMULL9为RCC_CFGR_PLLMULL6
配置调试串口编译烧录,板卡接串口,设置配置好的波特率,上电查看是否打印正常
• 注意串口号以及对应的IO
- void USART1_Config(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- USART_InitTypeDef USART_InitStructure;
- /* config USART2 clock */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 ,ENABLE);
- /* USART2 GPIO config */
- /* Configure USART2 Tx (PA.09) as alternate function push-pull */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
- /* Configure USART2 Rx (PA.10) as input floating */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- /* USART2 mode config */
- USART_InitStructure.USART_BaudRate = 115200;
- USART_InitStructure.USART_WordLength = USART_WordLength_8b;
- USART_InitStructure.USART_StopBits = USART_StopBits_1;
- USART_InitStructure.USART_Parity = USART_Parity_No ;
- USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
- USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
- USART_Init(USART2, &USART_InitStructure);
- USART_Cmd(USART2, ENABLE);
- }
重映射到标准输出
- int fputc(int ch, FILE *f)
- {
- USART_SendData(USART2, (unsigned char) ch);
- while (!(USART2->SR & USART_FLAG_TXE));
-
- return (ch);
- }
配置内部flash在memery.c中修改存储buffer
在mass_mal.c修改对应参数
• 对于是stm32f103cbt6最大只能设置25K的U盘,只有1K能被初始化
编译烧录编译烧录后,USB接入PC会弹出初始化窗口,确认初始化就行了。
愉快的拿钱去了。。。。。。。。。。
作者: 二月半, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-1862109.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
二月半 2023-7-7 10:58
luckyzy2000 2023-4-26 09:54