stm32f407用fat向SD卡写具体字符或数字

在做比赛想把加速度计的实时数值存在SD卡中,以方便分析数据,但用的时候发现f_printf函数无法写入,所以只能写了一下。以此记录。

首先这是主函数。
“`

#include “system.h”
#include “Systick.h”
#include “My_GPIO.h”
#include “My_TIM.h”
#include “My_USART.h”
#include “key.h”
#include “TFT_LCD.h”
#include “Malloc.h”
#include “SDIO.h”
#include “usmart.h”
#include “ff.h”
#include “exfuns.h”
#include “fattester.h”
#include “stdio.h”

void KEY_Deal(u8 res);

int main()
{
FRESULT fr;
FATFS fs;
FIL file;
u8 *p;
u32 i=0;
u8 buf[10];// f_printf(&file,”%d”,2);
p=buf;
SysTick_Init(168);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分2组
USART1_Init(9600);
TFTLCD_Init(); //LCD初始化
my_mem_init(SRAMIN); //初始化内部内存池
my_mem_init(SRAMCCM); //初始化CCM内存池
while(SD_Init())//检测不到SD卡
{
LCD_ShowString(10,100,tftlcd_data.width,tftlcd_data.height,16,”SD Card Error!”);
printf(“SD Card Error!\r\n”);
delay_ms(500);
}
exfuns_init();//为FatFs申请内存
f_mount(&fs,”0:”,1);//挂载SD卡
FRONT_COLOR=BLUE; //设置字体为蓝色
while(1)
{
mf_open(“0:/L.txt”,FA_WRITE);
mf_lseek(4*i);
sprintf(buf,”ax=%d”,3);//格式化字符串
mf_write(p,4);//如果没有上一步会p的数字会按对应的ASCII值写入
i++;
mf_close();
}

…fattester.c文件参考原子的。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
STM32F407是一款高性能的ARM Cortex-M4微控制器,具备丰富的外设资源,包括用于SD卡通信的SDIO接口。以下是关于如何在STM32F407上编程实现SD卡操作的简要步骤: 1. 初始化SDIO接口:首先,需要将SDIO接口初始化为SD模式。可以配置引脚和钟,并设置相应的寄存器来启用SDIO接口。 2. 初始化SD卡:在进行SD卡操作之前,需要对SD卡进行初始化。可以发送命令来进行SD卡的初始化,例如发送CMD0命令来复位SD卡。 3. 发送命令:使用SDIO接口向SD卡发送命令。可以使用SDIO发送命令的功能来发送指定的命令,例如CMD24表示单个块。 4. 准备数据:将要入的数据加载到缓冲区中,准备发送。 5. 发送数据:使用SDIO接口向SD卡发送数据。可以使用SDIO发送数据的功能来将数据发送到SD卡中。 6. 等待完成:等待数据传输的完成,确认数据传输成功。可以轮询相应的寄存器来检查传输是否完成。 7. 关闭SD卡:在完成操作后,可以发送命令来关闭SD卡,并释放相关资源。 需要注意的是,SD卡操作的具体实现可能会因不同的SD卡厂商而有所不同。可以参考STM32F407的相关文档和SD卡的规格说明,以确保正确地进行SD卡操作。 这只是一个简要的概述,实际的编程细节可能更为复杂。对于初学者来说,建议参考STM32F407的开发文档和相应的示例代码,以及SD卡厂商提供的资料,来详细了解和实现SD卡操作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值