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

合肥做企业建网站那家好/百度的seo关键词优化怎么弄

合肥做企业建网站那家好,百度的seo关键词优化怎么弄,专门建站的公司,武汉最好的网站建设公司最近在使用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数组里面的数据,电脑打开格式不对,要用特定的软件打开
在这里插入图片描述

相关文章:

STM32下的HAL库U盘数据读写

最近在使用FreeRTOS操作U盘数据读取,与裸机开发区别不大,只要注意默认分配的栈大小就行 FATFS简介 FATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言编写,所以具有良好的硬件平…...

JavaScript(20)——事件委托

事件委托是利用事件流的特征解决一些开发需求的知识技巧 优点:减少注册次数,提高程序性能 原理:利用事件冒泡的特点。 给父元素注册事件,当我们触发子元素的时候,会冒泡到父元素上,从而触发父元素事件。…...

Linux系统安装opencv

在Linux系统上安装OpenCV时,使用pip install opencv-python-headless是一个常见的选择。以下是安装OpenCV的步骤总结: 安装步骤: 更新系统软件包(可选): sudo apt update sudo apt upgrade安装pip&#xf…...

nginx反向代理+nginx黑白名单+nginx负载均衡+平滑升级+配置jdk环境-7.30

一、反向代理 1.前端服务器配置 前端服务器:用于接收和响应客户端,代理另一台主机 Nginx 安装 (1).下载安装nginx [rootweb ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz (2).解压 [rootweb ~ ]# tar -zxvf nginx-1.26.1.tar.gz (3…...

C# Unity 面向对象补全计划 之 访问修饰符

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正 本系列旨在通过补全学习之后,给出任意类图都能实现并做到逻辑上严丝合缝...

JAVA多线程设计模式 (多线程程序的衡量标准)

前言 如果你对一个程序的评价方式还停留在“这个程序写得不错”、“这个程序写得太差”的程度,这样很难看出你是否确实分析了程序的构造。不要只是“好不好”应该要有一个“好在哪里,不好在哪里”的评量标准。 一、下载地址 下载地址:JAVA…...

消息队列使用

消息队列在分布式系统中扮演着非常重要的角色,其主要用途包括但不限于以下几点: 解耦: 消息队列可以减少应用程序之间的直接依赖,使系统各部分更加独立。例如,在一个电子商务网站中,订单系统可以将订单信息发送到消息队列中,而不必直接调用库存系统。库存系统可以从队列…...

Windows 10+Visual Studio2019 Opencv-C++安装配置

前往官网下载需要的版本Releases - OpenCVhttps://opencv.org/releases/ 1.下载并解压OpenCV 我选择4.6.0,点击windows版本,进行下载 2.配置项目属性 打开你的Visual Studio 2019项目 -> 右击项目名,选择“属性” 注:整个配…...

百易云资产管理运营系统 comfileup.php 文件上传致RCE漏洞复现(XVE-2024-18154)

0x01 产品简介 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能,帮助企业优化资产配置,提升运营效率。 0x02 漏…...

【学习笔记】Redis学习笔记——第17章 集群

第17章 集群 17.1 节点 使用cluster meet命令将其他节点添加到当前节点集群中 17.1.1 启动节点 通过cluster-enabled设置来决定是否启用集群 17.1.2 集群数据结构 每个节点都保存了自己及其他节点的IP端口号等信息 17.1.3 cluster meet命令的实现 是收到命令的节点和新…...

Vue - CSS基础学习

一、元素及属性 CSS 是为 web 内容添加样式的代码。 style标签 1.语法 1.除了选择器部分,每个规则集都应该包含在成对的大括号里({})。 2.在每个声明里要用冒号(:)将属性与属性值分隔开。 3.在每个规则集里要用分号…...

python setup.py install

有三种方法安装pyinstaller,而我唯独用下面这种最方便,又成功。 下载源码安装包,然后解压安装包,打开cmd并进入安装包解压目录,可以看到该目录下有一个setup.py的文件。 执行命令:python setup.py instal…...

论文解读:DiAD之SG网络

目录 一、SG网络功能介绍二、SG网络代码实现 一、SG网络功能介绍 DiAD论文最主要的创新点就是使用SG网络解决多类别异常检测中的语义信息丢失问题,那么它是怎么实现的保留原始图像语义信息的同时重建异常区域? 与稳定扩散去噪网络的连接: S…...

Prometheus+Grafana 监控平台实践-搭建常用服务监控告警

前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker compose 构建 Prometheus+Grafana,并监控之前文章所搭建的主机&服务,分享日常使用的一些使用经验 文…...

leaflet加载天地图:卫星底图(影响地图) 和 路网底图(矢量地图)【webgis】

文章目录 引言I 申请Key1.1 应用创建1.2 账号认证II 使用申请的key进行相关的服务调用2.1 服务API2.2 初始化地图组件2.3 加载影像底图和影像注记2.4 地理编码查询引言 自己没有对应的地图服务器和地理查询服务器的时候,使用天地图来实现业务的快速支撑。 基于天地图使用Leaf…...

微软蓝屏事件:全球网络安全与系统稳定性的警示

文章目录 每日一句正能量前言探讨软件更新流程中的风险管理和质量控制机制软件更新的风险风险管理策略质量控制措施测试流程缺陷识别实施质量控制结论 提供预防类似大规模故障的最佳方案或应急响应对策设计冗余系统实施灾难恢复计划建立高可用架构应急响应对策利用自动化工具和…...

【51单片机仿真】基于51单片机设计的整数/小数计算器系统仿真源码文档——文末资料下载

演示: 摘要 本项目设计并实现了一种基于51单片机的多功能计算器系统。系统采用STC89C52单片机作为主控制器,结合LCD显示模块、矩阵键盘等外设,实现了基本的整数、小数算术运算功能,包括加、减、乘、除、取模等。本文详细介绍了系统的硬件设计和软件实现,并对系统的功能和…...

ubuntu安装dockergitlab

#更换阿里云进行配置GPG 密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [archarm64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" #如果出现错…...

自定义视图提示:提升Laravel用户体验的秘诀

自定义视图提示:提升Laravel用户体验的秘诀 在Laravel框架中,视图提示是一种向用户显示友好信息的方式,它们可以是表单输入后的错误信息、成功通知或其他重要的用户反馈。自定义视图提示不仅可以增强用户体验,还可以使应用程序的…...

关于黑马Ajax项目的笔记

一、token的介绍 概念: 访问权限的令牌,本质上是一串字符串 创建: 正确登录后,由后端签发并返回 作用: 判断是否有登录状态等,控制访问权限 注意 前端只能判断token有无,后端才能判断to…...

Java面试八股之JDK 动态代理和 CGLIB 动态代理的区别

JDK 动态代理和 CGLIB 动态代理的区别 JDK 动态代理和 CGLIB 动态代理都是在 Java 中实现动态代理的两种常见方式。它们各自有不同的特点和适用场景。下面详细介绍一下这两种动态代理的区别: 1. 代理机制 JDK 动态代理: 实现原理: JDK 动态代理基于 Java 的反射…...

验证码邮件接口测试指南?接口的优化策略?

验证码邮件接口集成步骤与注意事项?API接口设计要点? 在现代应用程序开发中,验证码邮件接口是保障用户安全和验证身份的重要工具。AokSend将详细介绍验证码邮件接口的测试指南,帮助开发者确保接口的稳定性和可靠性。 验证码邮件…...

基于Java的智能停车场管理系统

你好,我是计算机学姐码农小野!如果你对智能停车场管理系统感兴趣或有相关需求,欢迎私信联系我。 开发语言: Java 数据库: MySQL 技术: JSP技术 JAVA B/S架构 工具: 浏览器&#xff08…...

前后端分离开发遵循接口规范-YAPI

目前,网站主流开发方式是前后端分离。因此前后端必须遵循一套统一的规范,才能保证前后端进行正常的数据(JSON数据格式)请求、影响,这套规范即是 YAPI. 产品经理撰写原型; 前端或后端撰写接口文档。 YAPI…...

把本地的项目代码初始化到git仓库

cd /path/to/your/project# 在当前目录创建新的仓库 git init# 添加当前目录下的所有文件到暂存区 git add .# 添加commit message git commit -m "Initial commit"# 关联远程仓库 git remote add origin https://github.com/username/repository.git# 更改默认仓库&…...

白杨SEO:公众号如何找选题?如何利用ai工具写公众号?公众号变现方式有哪些?22个公众号营销常见问题解答大全!

前言:为什么分享这个?因为我发现不管是SEO从业者还是自媒体从业者,想通过公众号来做影响力或流量,甚至变现,但很多朋友公众号都没弄懂,所以分享一下。 分享问题大纲如下: 1、公众号如何申请注册…...

零基础学习深度学习以及模块缝合总结

Python基础知识 推荐视频:黑马程序员python教程,8天python从入门到精通,学python看这套就够了_哔哩哔哩_bilibili 工具和资源:PyTorch、Zotero、谷歌学术、Github、B站、ChatGPT等。 深度学习基本知识 张量维度表示&#xff1a…...

XXE-lab-master靶场:PHP_xxe

目录 有回显 测试回显位置 构建payload 无回显数据外带 构建payload 漏洞修复 XXE-lab是一个一个包含php,java,python,C#等各种语言版本的XXE漏洞靶场。 下载地址:https://github.com/c0ny1/xxe-lab 将PHPStudy的中间件与版本信息调制为 php-5.4.29Apache 以…...

视图,存储过程和触发器

目录 视图 创建视图: 视图的使用 查看库中所有的视图 删除视图 视图的作用: 存储过程: 为什么使用存储过程? 什么是存储过程? 存储过程的创建 创建一个最简单的存储过程 使用存储过程 删除存储过程 带参的存储…...

sqli-labs(6-10)关通关讲解

sqli-labs(6-10)关通关讲解 Less-6 方法一:手工注入 1.判断闭合 http://localhost/sqli-labs/Less-6/?id1" //报错 http://localhost/sqli-labs/Less-6/?id1" -- //正常 http://localhost/sqli-labs/Less-6/?id1" and 11 -- http://localhos…...