这几天在移植FATFS文件系统,在移植过程中需要新建文件夹下创建新的cfg文件,查找资料后发现需要用到以下函数:
f_mkdir("0:/2017110223");//新建文件夹,其中2017110223是文件夹名称
f_open(filescr1, "0:2017110223/201711011.txt", FA_OPEN_NEW_COVER);//在新建的文件夹下创建新的txt文本文件
新建完成之后要记得关闭该文件,否则就会出错。
f_res = f_close(filescr1);
在移植FATFS文件系统的时候我们可以用随时查看文件操作函数的返回值,针对这些返回值都有特定的意义,针对这些返回值我们可以很快锁定问题。
typedef enum {
FR_OK = 0, /* (0) Succeeded */
FR_DISK_ERR, /* (1) A hard error occurred in the low level disk I/O layer */
FR_INT_ERR, /* (2) Assertion failed */
FR_NOT_READY, /* (3) The physical drive cannot work */
FR_NO_FILE, /* (4) Could not find the file */
FR_NO_PATH, /* (5) Could not find the path */
FR_INVALID_NAME, /* (6) The path name format is invalid */
FR_DENIED, /* (7) Access denied due to prohibited access or directory full */
FR_EXIST, /* (8) Access denied due to prohibited access */
FR_INVALID_OBJECT, /* (9) The file/directory object is invalid */
FR_WRITE_PROTECTED, /* (10) The physical drive is write protected */
FR_INVALID_DRIVE, /* (11) The logical drive number is invalid */
FR_NOT_ENABLED, /* (12) The volume has no work area */
FR_NO_FILESYSTEM, /* (13) There is no valid FAT volume */
FR_MKFS_ABORTED, /* (14) The f_mkfs() aborted due to any parameter error */
FR_TIMEOUT, /* (15) Could not get a grant to access the volume within defined period */
FR_LOCKED, /* (16) The operation is rejected according to the file sharing policy */
FR_NOT_ENOUGH_CORE, /* (17) LFN working buffer could not be allocated */
FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_SHARE */
FR_INVALID_PARAMETER /* (19) Given parameter is invalid */
} FRESULT;
关键字:STM32 FATFS 文件系统 创建文件夹
引用地址:
STM32+SD卡 利用FATFS文件系统创建文件夹并新建txt文件
推荐阅读最新更新时间:2024-03-16 16:14
基于FAT16文件系统的嵌入式温度记录器设计方案
闪存技术的不断发展,使得闪存卡(如SD卡、MMC卡等)因其体积小、容量大、可靠性高等优点而在嵌入式存储领域得到越来越广泛的应用。FAT16文件系统具有出色的文件管理性能,能被大多数操作系统识别,因此将闪存卡与FAT16文件系统相结合是嵌入式存储、记录系统中一个理想的方案。温度采集与控制技术是现代测量、控制系统的一个重要组成部分。由于传统的模拟传感测量温度系统存在测量精度低、易受干扰、硬件复杂、调试繁琐等不利因素,而新型单片数字式温度传感器具有测量精度高、抗干扰能力强、操作方便、功耗低等优点,应用范围越来越广泛。本嵌入式数字温度记录器以ARM7微处理器LPC2148、数字温度传感器ADT75为基础,采用大容量SD卡作为存储介质,实
[单片机]
STM32部分知识之I2C
I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。 多主机I2C总线系统结构: 因为STM32自带的I2C不稳定所以采用模拟I2C,所以首先的初始化I0口 void IIC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,
[单片机]
STM32入门系列-介绍STM32型号与功用
作为STM32初学者,一般会选择购置一块开发板,因为在开发板上有很多已经集成好的模块,如红外模块、按键模块、LED模块、DAC模块、ADC模块、can模块、485模块、以太网模块、WiFi模块、蜂鸣器模块、SRAM模块、显示屏等。有的朋友可能要用stm32做红外探测小车,那么就需要用到红外模块;有的朋友可能需要用到WiFi模块进行通信产品的设计。下面贴上一张图我学习STM32时用过的开发板。 主要讲的内容分为三部分: 什么是STM32; STM32与ARM之间的关系; STM32能做什么。 什么是STM32 从字面意义来看: ST:意法半导体,是一个公司的名字。 M:Microelectronics的缩写
[单片机]
“STM32不止于芯”: 2023年STM32中国峰会暨粉丝狂欢节重磅回归深圳
2023年5月12日,中国深圳 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;)将于5月12-13日在深圳蛇口希尔顿酒店举行2023年STM32中国峰会暨粉丝狂欢节。 STM32中国峰会是展示STM32产品技术和解决方案的行业盛会,2023年,我们迎来了第六届STM32中国峰会。本届峰会以“STM32不止于芯”为主题,将专注于边缘AI、网络连接、信息安全、生态系统与开发者优先计划,重点展示STM32创新产品技术如何赋能各种应用。 本届峰会将举办50多场专题会议,其中包括高管主题演讲、技术研讨会,以及ST和生态系统合作伙伴的demo演示。此外,新品展区将是本届
[单片机]
STM32网络通信之DM9000A电路设计
1 总体描述: DM9000A的PHY 能够以10BASE-T 的标准在UTP3\4\5或者以100BASE-T的标准在UTP5上接口通信。它的自动协商功能是够自动配置DM9000A最大地发挥出自身性能。它同时支持IEEE 802.3X全双工数据流通信。 2、结构图: 3、硬件电路的设计 (1)电源连接: 引脚号 电气连接 说明 2、9 模拟2.5V 为RX和TX供电,必须为2.5V 23、30、42 数字3.3V1 数字电源3.3V为芯片供电 15、33、45 数字地 数字地 5、6、47、48 模拟地 5、47、6分别为RX和TX的GND,48是通带宽带的GND 41
[单片机]
STM32(9) GPIO口复用功能实现(正点原子)
一个GPIO口可以 复用成内部外设的功能引脚,这里我们利用PA9PA10设置为UART1来举例。 IO口对应的复用功能需要查表来确定。这个表在芯片手册 下面这个图讲解了GPIO口的复用原理 上图右边左图是复用器(AFRL(31:0)、AFRH(31:0)),要复用哪个引脚就将相应的GPIO连接到复用器上,即可。 那么接下来我们就讲解 一下如何利用复用器去将GPIO口配置成复用功能。AFRL和AFRH都是32的寄存器,每一个GPIO口占用4位,所以在一组IO口中,他的低8位(PA0-PA7)占用AFRL,他的高8位(PA8-PA15)占用AFRH。 例如:我们要配置GPIOA2配置成UART2, 1.G
[单片机]
STM32 代码中类型修饰符 volatile 的作用
今天还在做 STM32 DAC Function generator 唉~ 毕竟单片机的机能有限,做函数发生器略显吃力,不过STM32自带DAC能实现 100KHz 40样点正弦信号 确实已经相当强悍了。DAC 使用DMA + 定时器触发转换。 而今天的问题在于 做这个Function generator时编写的一套简单串口终端界面出现了一个令我百思不得其解小BUG..... 输入部分: USART2_Puts(star ); USART2_Puts( Enter Frequency: ); while(Uart2_Get_Data!=0x0d&&nde 6) { if(Uart2_Get_Flag) {
[单片机]
STM32-仿真调试时的SystemInit陷阱
STM32-仿真调试时的SystemInit陷阱 我在开始STM32的仿真调试时,遇到一个问题,就是调试时程序一直停在SystemInit()中的等待晶振中,怎么也出不来。 SystemInit()前面部分的代码,都能走过,就是在执行到最后一个函数时出问题了。 最后一个函数是:SetSysClock(); 执行到下面这个循环之后,出不来了: /* Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus = RCC- CR & RCC_CR_HSERDY; StartUpCounter++; } while((HS
[单片机]