当前位置: 首页 > news >正文

南靖企业网站建设公司河北关键词排名推广

南靖企业网站建设公司,河北关键词排名推广,佛山网站推广优化,广州网站优化工具服务最近在使用FreeRTOS操作U盘数据读取,与裸机开发区别不大,只要注意默认分配的栈大小就行 FATFS简介 FATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平…

最近在使用FreeRTOS操作U盘数据读取,与裸机开发区别不大,只要注意默认分配的栈大小就行

FATFS简介

FATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、 PIC、 AVR、 SH、Z80、 H8、 ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、 FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化,还支持RTOS。

使用者无需理会 FATFS 的内部结构和复杂的 FAT 协议,只需要调用FATFS 模块提供给用户的一系列应用接口函数,如 f_open, f_read, f_write 和 f_close 等,就可以像在 PC 上读/写文件那样简单。

FATFS 模块提供的是 ff.c 和 ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。

ff.h里面有各种函数
在这里插入图片描述

硬件配置

采用的是STM32F767IGT6型号,PCB绘制了一个USB-A口,用来插连U盘
在这里插入图片描述
在这里插入图片描述

HAL库配置

除了基础的配置外,需要对USB_OTG_FS进行配置,配置为Host_Only模式
在这里插入图片描述
在这里插入图片描述
配置FATS文件操作参数:
在这里插入图片描述
配置U盘:
在这里插入图片描述

在FreeRTOS操作系统下,要注意分配的堆栈大小,否则插入U盘时,堆栈溢出会使得程序会卡死,usbh_conf.h中的USBH_PROCESS_STACK_SIZE大小至少要为128 *11 bytes才能正常运行,建议设置为128 *16 bytes。
在这里插入图片描述
这与裸机开发不一样,裸机开发不需要分配堆栈

程序操作

所有功能测试程序:

uint8_t retUSBH;    /* Return value for USBH */
char USBHPath[4];   /* USBH logical drive path */
FATFS USBHFatFS;    /* File system object for USBH logical drive */
FIL USBHFile;       /* File object for USBH */uint8_t w_buf[5]={'b','a','c','n','n'};
uint8_t w_buf1[5]={' ','e','g','n','m'};
uint8_t r_buf[5]={0};UINT br,bw;
void test_usb(void)
{printf("---------\r\n");retUSBH = f_mount(&USBHFatFS,(TCHAR const*)USBHPath,1); //挂载if(retUSBH == FR_OK)printf("UP U is ok\r\n");retUSBH = f_open(&USBHFile,(const char*)"测试.txt",FA_WRITE|FA_CREATE_ALWAYS);//创建打开if(retUSBH==FR_OK){HAL_UART_Transmit(&huart1,(uint8_t*)"打开文件\"测试.txt\"成功!\r\n",25,100);}retUSBH = f_lseek(&USBHFile,f_size(&USBHFile));if(retUSBH==FR_OK){HAL_UART_Transmit(&huart1,(uint8_t*)"指针移动到文件末尾成功!\r\n",25,100);}retUSBH = f_write(&USBHFile,w_buf,18,&bw);if(retUSBH==FR_OK){HAL_UART_Transmit(&huart1,(uint8_t*)"写入文件成功!\r\n",15,100);}retUSBH = f_close(&USBHFile);if(retUSBH==FR_OK){HAL_UART_Transmit(&huart1,(uint8_t*)"关闭文件成功!\r\n\r\n",17,100);}//读取文件测试HAL_UART_Transmit(&huart1,(uint8_t*)"读取文件测试!\r\n",15,100);retUSBH = f_open(&USBHFile,(const char*)"测试.txt",FA_OPEN_EXISTING|FA_READ);//打开文件if(retUSBH==FR_OK){HAL_UART_Transmit(&huart1,(uint8_t*)"打开文件\"测试.txt\"成功!\r\n",25,100);}retUSBH = f_read(&USBHFile,r_buf,18,&bw);if(retUSBH==FR_OK){HAL_UART_Transmit(&huart1,(uint8_t*)"读取文件成功!文件内容:",23,100);HAL_UART_Transmit(&huart1,r_buf,bw,100);}retUSBH = f_close(&USBHFile);if(retUSBH==FR_OK){HAL_UART_Transmit(&huart1,(uint8_t*)"关闭文件成功!\r\n",15,100);}	
}

有个小问题就是中文命名文件名会乱码显示,用英文和数字就没有这个问题。
在这里插入图片描述
根目录下就会有生成的文件,这里只有15个字符,多次写入,是因为程序只让写15个
在这里插入图片描述

Upan 状态检测实际程序:

void USB_Disk_Process(void)
{USBH_Process(&hUsbHostFS);  //USB Core的后台进程函数,检测USB热插拔的状态,本来裸机开发下应该自动生成的Up_SaveDate_Screen_Process();
}ApplicationTypeDef Appli_state_temp=APPLICATION_DISCONNECT;
void Up_SaveDate_Screen_Process(void)
{if(Appli_state_temp!=Appli_state){Appli_state_temp=Appli_state;if(Appli_state == APPLICATION_READY)  //U盘插入{............}if(Appli_state == APPLICATION_DISCONNECT)  //U盘拔出{.....................}}
}

U盘文件夹创建程序:


//USBHPath为例如 0:/xxx  这样格式字符串
retUSBH = f_mount(&USBHFatFS,(TCHAR const*)USBHPath,1); //挂载
retUSBH = f_mkdir(GPR_Path_char);//创建文件夹
if(retUSBH == FR_OK)  //创建成功....
else....

U盘文件创建及写入程序:

//GPR_Path_char 字符串格式例如 0:/文件名xxx/xxx.txt
retUSBH = f_open(&USBHFile,(const char*)GPR_Path_char,FA_WRITE|FA_OPEN_APPEND); //打开文件,赋予写权限,并且把指针移动到文件的末尾
retUSBH = f_write(&USBHFile,SPI_AD_DATA.RX_DATA_BUF,sizeof(SPI_AD_DATA.RX_DATA_BUF),&bw); //写入SPI数据
if(retUSBH == FR_OK)....
else.......
f_close(&USBHFile);

这里直接写入SPI数组里面的数据,电脑打开格式不对,要用特定的软件打开
在这里插入图片描述

http://www.hkea.cn/news/670355/

相关文章:

  • 做网站的是干嘛的怎样把自己的产品放到网上销售
  • 品牌型网站制作价格2022年小学生新闻摘抄十条
  • 政府网站群集约化建设网络暴力事件
  • 可以做卷子的网站游戏app拉新平台
  • 长沙优化网站关键词社区营销
  • 个人网站制作价格表重庆关键词优化
  • 网站开发ideseo优化网站模板
  • 关于制作网站收费标准怎样把个人介绍放到百度
  • 网站建设 绵阳百度开放平台
  • discuz修改网站标题微信小程序开发平台
  • 怎么做国内网站吗seo顾问培训
  • 网站排名不稳定怎么办seo+网站排名
  • 做网站要淘宝热搜关键词排行榜
  • 做网站 创业 流程网络建站流程
  • 怎么做购物网站系统文本广州网络营销推广
  • 网站后台管理系统cms推广seo网站
  • 企业网站备案注销百度推广登陆平台
  • 重庆如何软件网站推广网站优化seo
  • 最专业的佛山网站建设价格3小时百度收录新站方法
  • wordpress门户建站html网页完整代码作业
  • 子域名 做单独的网站广州seo外包公司
  • 凡科建设网站的步骤永久免费无代码开发平台网站
  • 建设一个百度百科类网站网站排名优化的技巧
  • 自己做网站可以吗淄博做网站的公司
  • 个人做健康网站好吗宁波网站制作与推广价格
  • 长沙有哪些做网站的连云港seo优化公司
  • 青羊区定制网站建设报价搜索引擎营销方案
  • 淘宝优惠券查询网站怎么做域名备案官网
  • wordpress自定义url优化教程网下载
  • 模板网站和定制网站百度搜索引擎的网址