做网站需要什么资金山西建站推广

张小明 2026/1/10 11:28:59
做网站需要什么资金,山西建站推广,中小型网站建设公司,做网站路由器映射外网W25Q64是Flash模块#xff0c;里面保存的数据在掉电后不会丢失#xff0c;可以看作一个小型移动硬盘。本实验在SPI收发数据的基础上#xff0c;增加用该模块存储数据和读取数据的功能。#include stm32f10x.h #include delay.huint8_t a 0;void App…W25Q64是Flash模块里面保存的数据在掉电后不会丢失可以看作一个小型移动硬盘。本实验在SPI收发数据的基础上增加用该模块存储数据和读取数据的功能。#include stm32f10x.h#include delay.huint8_t a 0;void App_SPI1_Init(void);//APP表示应用层代码也就是用户自己写的void APP_SPI_MasterTransmitReceive(SPI_TypeDef *SPIx, const uint8_t *pDataTx, uint8_t *pDataRx, uint16_t Size);void App_W25Q64_SaveByte(uint8_t Byte);//Byte提供了要写入的数据uint8_t App_W25Q64_Load_Byte(void);int main(void){App_SPI1_Init();App_W25Q64_SaveByte(0x12);a App_W25Q64_Load_Byte();while(1)//表示不间断去读取{}}void App_SPI1_Init(void){//#1.初始化IO引脚RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SPI1, ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);GPIO_InitTypeDef GPIO_InitStruct;//PB3 SCK AF_PP 2MHzRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStruct.GPIO_Pin GPIO_Pin_3;GPIO_InitStruct.GPIO_Mode GPIO_Mode_AF_PP;GPIO_InitStruct.GPIO_Speed GPIO_Speed_2MHz;GPIO_Init(GPIOB, GPIO_InitStruct);//PB4 MOSI IPUGPIO_InitStruct.GPIO_Pin GPIO_Pin_4;GPIO_InitStruct.GPIO_Mode GPIO_Mode_IPU;GPIO_Init(GPIOB, GPIO_InitStruct);//PB5 MISO AF_PP 2MHzGPIO_InitStruct.GPIO_Pin GPIO_Pin_5;GPIO_InitStruct.GPIO_Mode GPIO_Mode_AF_PP;GPIO_InitStruct.GPIO_Speed GPIO_Speed_2MHz;GPIO_Init(GPIOB, GPIO_InitStruct);//PA15 普通IO Out_PP 2MHzRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStruct.GPIO_Pin GPIO_Pin_15;GPIO_InitStruct.GPIO_Mode GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed GPIO_Speed_2MHz;GPIO_Init(GPIOA, GPIO_InitStruct);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//#2.对SPI本身进行初始化RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);SPI_InitTypeDef SPI_InitStruct;SPI_InitStruct.SPI_Direction SPI_Direction_2Lines_FullDuplex;SPI_InitStruct.SPI_Mode SPI_Mode_Master;SPI_InitStruct.SPI_DataSize SPI_DataSize_8b;SPI_InitStruct.SPI_CPOL SPI_CPOL_Low;SPI_InitStruct.SPI_CPHA SPI_CPHA_1Edge;SPI_InitStruct.SPI_FirstBit SPI_FirstBit_MSB;SPI_InitStruct.SPI_BaudRatePrescaler SPI_BaudRatePrescaler_64;SPI_InitStruct.SPI_NSS SPI_NSS_Soft;SPI_Init(SPI1, SPI_InitStruct);SPI_NSSInternalSoftwareConfig(SPI1, SPI_NSSInternalSoft_Set);//向NSS引脚输入1接到高电压防止主机被当作从机}void APP_SPI_MasterTransmitReceive(SPI_TypeDef *SPIx, const uint8_t *pDataTx, uint8_t *pDataRx, uint16_t Size){//#1.闭合总开关SPI_Cmd(SPIx, ENABLE);//#2.发送第一个字节SPI_I2S_SendData(SPIx, pDataTx[0]);//若不发第一个字节RDR中无数据可读也无法开始接收数据。//#3.循环Size-1次for(uint8_t i0; iSize-1; i){//发送字节先等待TxE再循环直至发到第i1个字节while(SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) RESET);SPI_I2S_SendData(SPIx, pDataTx[i1]);//接收字节先等待RxNE再循环直至接收到第i个字节while(SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) RESET);pDataRx[i] SPI_I2S_ReceiveData(SPIx);}//#4.接收最后一个字节第Size-1个while(SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE) RESET);pDataRx[Size-1] SPI_I2S_ReceiveData(SPIx);//#5.断开总开关SPI_Cmd(SPIx,DISABLE);}//存储数据void App_W25Q64_SaveByte(uint8_t Byte){uint8_t buffer[10];//声明一个数组//#1.写使能buffer[0] 0x06;GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);//NSS0APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer, 1);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//NSS1//#2.扇区擦除//主机发0x20 24位地址buffer[0] 0x20;buffer[1] 0x00;buffer[2] 0x00;buffer[3] 0x00;GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer,4);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//#3.等待空闲//判断BUSY标志位是否为0//主机先发送0x05然后再接收一个字节while(1){//发送0x05buffer[0] 0x05;GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer,1);//接收一个字节buffer[0] 0xff;APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer,1);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//判断BUSY标志位是否为0,0代表空闲则跳出循环if((buffer[0] 0x01) 0){break;}}//#4.写使能buffer[0] 0x06;GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);//NSS0APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer, 1);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//NSS1//#5.页编程//主机发0x02 24位地址 要发的数据buffer[0] 0X02;buffer[1] 0X00;buffer[2] 0X00;buffer[3] 0X00;buffer[4] Byte;GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer, 5);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//#6. 等待空闲while(1){//发送0x05buffer[0] 0x05;GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer,1);//接收一个字节buffer[0] 0xff;APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer,1);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//判断BUSY标志位是否为0,0代表空闲则跳出循环if((buffer[0] 0x01) 0){break;}}}//读取数据uint8_t App_W25Q64_Load_Byte(void){//主机发0x03 24位地址然后读取数据uint8_t buffer[10];//声明一个数组//主机发0x03 24位地址buffer[0] 0x03;buffer[1] 0X00;buffer[2] 0X00;buffer[3] 0X00;GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_RESET);APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer, 4);//读取数据buffer[0] 0xff;APP_SPI_MasterTransmitReceive(SPI1, buffer, buffer, 1);GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);return buffer[0];}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

免费网站建站教程怎么用wordpress建立自己的网站

安卓虚拟摄像头终极指南:5步实现个性化相机画面替换 📹 【免费下载链接】com.example.vcam 虚拟摄像头 virtual camera 项目地址: https://gitcode.com/gh_mirrors/co/com.example.vcam 安卓虚拟摄像头解决方案com.example.vcam是一款基于Xposed框…

张小明 2026/1/10 3:31:02 网站建设

最早做网站的那批人做网站常州

Miniconda MLflow:构建可复现的机器学习工程体系在今天的机器学习项目中,一个模型能否成功上线,往往不再取决于算法本身是否“够聪明”,而更依赖于整个开发流程是否可控、可追踪、可协作。你有没有遇到过这样的场景?“…

张小明 2026/1/8 0:06:23 网站建设

阿里巴巴网站详情页怎么做湖北平台网站建设制作

IAR下载优化实战:从配置到调优的深度指南在嵌入式开发的世界里,我们每天都在和编译、链接、下载打交道。而当你点击“Download & Debug”那一刻,是否曾好奇过——代码是如何从你的电脑穿越USB线,最终稳稳地落进那颗小小的MCU …

张小明 2026/1/8 7:49:02 网站建设

南京高端网站建设工作室企业官网建站流程

为什么需要高性能推理与AI网关 核心是要解决4个原生大模型的问题。 提供高性能推理解决: 推理速度,提升LLM的推理吞吐量以及延迟问题高并发:能够会进行大量并发请求 AI网关解决: 多模型路由与负载均衡:支持多个模型实例…

张小明 2026/1/8 7:01:42 网站建设

淘宝客网站如何做黑龙江建筑工程信息网

在软件研发管理中,版本、需求与代码管理是保障项目高效协作和稳定交付的三大支柱。**要设计科学的版本、需求与代码管理制度,核心在于统一规范、明确流程与工具化执行。**只有建立制度化的管理体系,才能确保开发节奏可控、代码质量可追溯、版…

张小明 2026/1/8 5:33:07 网站建设

如何网站贵阳企业网站建设

YOLO模型批量推理最佳实践:如何设置最优Batch Size? 在工业视觉系统中,一个常见的尴尬场景是:明明配备了高端GPU服务器,YOLO模型的推理速度却始终徘徊在个位数FPS,GPU利用率长期低于30%。这种“大炮打蚊子”…

张小明 2026/1/9 18:41:10 网站建设