娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月29日(星期日)

2020年06月29日 | STM32F407實現(xiàn)FRAM驅(qū)動

發(fā)布者:正在搬磚的河馬71 來源: eefocus關(guān)鍵字:STM32F407  FRAM驅(qū)動  spi接口初始化 手機看文章 掃描二維碼
隨時隨地手機看文章

spi接口初始化

void SPI1_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

SPI_InitTypeDef SPI_InitStructure;


RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA時鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);//使能SPI1時鐘


//GPIOF9,F10初始化設(shè)置

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//PB3~5復(fù)用功能輸出

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//復(fù)用功能

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化


GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_SPI1); //PB3復(fù)用為 SPI1

GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_SPI1); //PB4復(fù)用為 SPI1

GPIO_PinAFConfig(GPIOA,GPIO_PinSource7,GPIO_AF_SPI1); //PB5復(fù)用為 SPI1



//這里只針對SPI口初始化

RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1,ENABLE);//復(fù)位SPI1

RCC_APB2PeriphResetCmd(RCC_APB2Periph_SPI1,DISABLE);//停止復(fù)位SPI1


SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;  //設(shè)置SPI單向或者雙向的數(shù)據(jù)模式:SPI設(shè)置為雙線雙向全雙工

SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //設(shè)置SPI工作模式:設(shè)置為主SPI

SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //設(shè)置SPI的數(shù)據(jù)大小:SPI發(fā)送接收8位幀結(jié)構(gòu)

SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; //串行同步時鐘的空閑狀態(tài)為高電平

SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; //串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣

SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //NSS信號由硬件(NSS管腳)還是軟件(使用SSI位)管理:內(nèi)部NSS信號有SSI位控制

SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; //定義波特率預(yù)分頻的值:波特率預(yù)分頻值為256

SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //指定數(shù)據(jù)傳輸從MSB位還是LSB位開始:數(shù)據(jù)傳輸從MSB位開始

SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC值計算的多項式

SPI_Init(SPI1, &SPI_InitStructure);  //根據(jù)SPI_InitStruct中指定的參數(shù)初始化外設(shè)SPIx寄存器


SPI_Cmd(SPI1, ENABLE); //使能SPI外設(shè)


//SPI1_ReadWriteByte(0xff);//啟動傳輸  


}

//SPI1速度設(shè)置函數(shù)

//SpeedSet:0~7

//SPI速度=fAPB2/2^(SpeedSet+1)

//fAPB2時鐘一般為84Mhz

void SPI1_SetSpeed(u8 SPI_BaudRatePrescaler)

{

assert_param(IS_SPI_BAUDRATE_PRESCALER(SPI_BaudRatePrescaler));

SPI1->CR1&=0XFFC7;

SPI1->CR1|=SPI_BaudRatePrescaler; //設(shè)置SPI1速度

SPI_Cmd(SPI1,ENABLE);

}

//SPI1 讀寫一個字節(jié)

//TxData:要寫入的字節(jié)

//返回值:讀取到的字節(jié)

u8 SPI1_ReadWriteByte(u8 TxData)

{

u8 retry = 0;

while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET)

{

retry++;

if(retry > 200) return 0;

}//等待發(fā)送區(qū)空


SPI_I2S_SendData(SPI1, TxData); //通過外設(shè)SPIx發(fā)送一個byte  數(shù)據(jù)

retry = 0;


while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)

{

retry++;

if(retry > 200) return 0;

} //等待接收完一個byte


return SPI_I2S_ReceiveData(SPI1); //返回通過SPIx最近接收的數(shù)據(jù)


}


FRAM接口

#ifndef __FRAM_H

#define __FRAM_H


#ifdef __cplusplus

extern “C” {

#endif


#include “stm32f4xx.h”

#define CMD_WREN 0x06

#define CMD_WRDI 0x04

#define CMD_RDSR 0x05

#define CMD_WRSR 0x01

#define CMD_READ 0x03

#define CMD_WRITE 0x02


#define GPIO_CSN GPIOA

#define GPIO_Pin_CSN GPIO_Pin_4

#define GPIO_RCC_CSN RCC_AHB1Periph_GPIOA

#define Set_FRAM_CSN() GPIO_SetBits(GPIO_CSN,GPIO_Pin_CSN)

#define Clr_FRAM_CSN() GPIO_ResetBits(GPIO_CSN,GPIO_Pin_CSN)


void FRAM_Init(void);

void FRAM_Write(u16 writeaddr,u8 *fbuf,u16 n);

void FRAM_Read(u16 readaddr,u8 *fbuf,u16 n);

#ifdef __cplusplus

}

#endif


#endif


#include “fram.h”

#include “spi.h”


//初始化SPI FLASH的IO口

void FRAM_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;


RCC_AHB1PeriphClockCmd(GPIO_RCC_CSN, ENABLE);//使能GPIOB時鐘

//GPIOA4

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_CSN;//PB14

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//輸出

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽輸出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉

GPIO_Init(GPIO_CSN, &GPIO_InitStructure);//初始化


Set_FRAM_CSN();

SPI1_Init();     //初始化SPI

Clr_FRAM_CSN();

SPI1_ReadWriteByte(0xff);//啟動傳輸

Set_FRAM_CSN(); //SPI FLASH不選中


}

void FRAM_Write_Enable(void)

{

u16 i;

Clr_FRAM_CSN();

SPI1_ReadWriteByte(CMD_WREN); //發(fā)送讀取命令

Set_FRAM_CSN();

i=10;

while(i–);


}

void FRAM_Write(u16 writeaddr,u8 *fbuf,u16 n)

{

u16 i;

FRAM_Write_Enable(); //操作命令之前必須寫使能

Clr_FRAM_CSN(); //使能器件

SPI1_ReadWriteByte(CMD_WRITE); //發(fā)送讀取命令

SPI1_ReadWriteByte((u8)((writeaddr)>>8)); //發(fā)送16bit地址

SPI1_ReadWriteByte((u8)writeaddr);

for(i=0;i{

SPI1_ReadWriteByte(fbuf[i]); //循環(huán)讀數(shù)

}

Set_FRAM_CSN();

}


void FRAM_Read(u16 readaddr,u8 *fbuf,u16 n)

{

u16 i;

FRAM_Write_Enable(); //操作命令之前必須寫使能

Clr_FRAM_CSN(); //使能器件

SPI1_ReadWriteByte(CMD_READ); //發(fā)送讀取命令

SPI1_ReadWriteByte((u8)((readaddr)>>8)); //發(fā)送16bit地址

SPI1_ReadWriteByte((u8)readaddr);

for(i=0;i{

fbuf[i]=SPI1_ReadWriteByte(0xff); //循環(huán)讀數(shù)

}

Set_FRAM_CSN();

}


總結(jié)

1、操作讀寫之前要發(fā)送寫使能命令才進行操作

2、FRAM可以按字節(jié)操作或連接操作。

關(guān)鍵字:STM32F407  FRAM驅(qū)動  spi接口初始化 引用地址:STM32F407實現(xiàn)FRAM驅(qū)動

上一篇:絕對值編碼器數(shù)據(jù)接收的問題
下一篇:STM32 網(wǎng)絡(luò)通信Web Server中 SSI與CGI的應(yīng)用解析

推薦閱讀

Smart Speakers Meet The Trust Issue?據(jù)外媒報道,由于近期暴露出來的各種智能音箱隱私數(shù)據(jù)泄露等安全問題,導(dǎo)致了智能音箱目前正面臨著用戶信任危機問題。?據(jù)調(diào)查,全球不同地區(qū)的用戶都對智能音箱產(chǎn)生了信任問題,只是不同地區(qū)程度有所區(qū)別而已。??消費者被問及他們是否會信任諸如亞馬遜Alexa或Google Home之類的數(shù)字助理提供諸如天氣、新聞...
數(shù)據(jù)傳輸時要從支持那些相關(guān)的標準?傳輸?shù)乃俣龋渴裁磿r候開始?什么時候結(jié)束?傳輸?shù)膬?nèi)容?怎樣防止通信出錯?數(shù)據(jù)量大的時候怎么弄?硬件怎么連接出發(fā),當然對于stm32還要熟悉庫函數(shù)的功能具起來rs232和485電平的區(qū)別硬件外圍芯片,波特率(反映傳一位的時間),起始位和停止位,數(shù)據(jù)寬度,校驗,硬件流控制,相應(yīng)連接電腦時的接口怎么樣的。配置,使用函...
汽車攝像頭模塊設(shè)計人員必須在縮短上市的同時,創(chuàng)建更小的攝像頭模塊設(shè)計,這些設(shè)計可擴展并可重復(fù)用于各種類型的圖像序列化器和傳感器。在本文中,我將解決汽車攝像頭模塊設(shè)計的幾個關(guān)鍵設(shè)計挑戰(zhàn),包括設(shè)計簡化和平臺可擴展性。 借助可擴展的PMIC簡化設(shè)計并加快產(chǎn)品上市時間 維護一個通用電源設(shè)計平臺有助于工程師縮短設(shè)計時間,從而縮短產(chǎn)品上市時間。具...
本程序用于將MQ-3上讀取到的模擬信號轉(zhuǎn)換為對應(yīng)的數(shù)字信號,經(jīng)51單片機處理后,在數(shù)碼管顯示,同時具有報警功能,當檢測值高于預(yù)警值,蜂鳴器報警。除了可以檢測MQ-3酒精濃度模塊的AD值,也適用于MQ系列的其他模塊,原理基本都相同,都是將讀取到的AD值轉(zhuǎn)換為數(shù)字信號,程序修改后,如果接線方法正確,可以在吉林農(nóng)業(yè)大學(xué)51開發(fā)板上完美運行,相關(guān)工程文件...

史海拾趣

問答坊 | AI 解惑

什么是最低照度?什么是感光度?0.0001Lux代表什么?

最低照度是測量攝像機感光度的一種方法,換句話說,攝像機能在多黑的條件下看到可用的影像。但是因為沒有管理的國際標準,因此每個大型CCD制造商都有自己測量CCD感光度的方法。然而一個標注為(1Lux,F(xiàn)10)的攝像機能和標注為(0.01Lux,F(xiàn)10)的攝 ...…

查看全部問答∨

在MDK中數(shù)據(jù)包如何定位地址下載到STM32中去

如果在您的STM32項目中需要用到一個比較大的數(shù)據(jù)庫,程序需要訪問它,那么你可以通過修改連接腳本把你的數(shù)據(jù)定位到你指定的區(qū)間,或者直接修改Target對話框,從Flash或者Ram中分出一段區(qū)間來存放你的數(shù)據(jù)包文件,這樣就可以定位地址下載到STM32中去 ...…

查看全部問答∨

運算放大器基本電路30例

運算放大器基本電路30例…

查看全部問答∨

我的VS2005的菜單怎么亂套了,在生成菜單選項下,生成成為了重新生成的功能,部暑成為了重新生成+部暑(下載)的功能,在調(diào)試菜單下,啟動調(diào)試成為了部暑(下載)+

我的VS2005的菜單怎么亂套了,在生成菜單選項下,生成成為了重新生成的功能,部暑成為了重新生成+部暑(下載)的功能,在調(diào)試菜單下,啟動調(diào)試成為了部暑(下載)+啟動調(diào)試功能,怎么調(diào)回去啊!…

查看全部問答∨

BUTTON 透明

我想使我的按鈕控件透明,不知道怎么弄?我從網(wǎng)上找到了CeBtnST.cpp 這個類,它不支持透明,我想從它的基礎(chǔ)上改動…

查看全部問答∨

關(guān)于ARM+DSP雙核開發(fā)系統(tǒng)的問題

我們現(xiàn)在做的一個關(guān)于嵌入式課題在開發(fā)系統(tǒng)選型時遇到了一點問題,因為我們的系統(tǒng)既需要良好的GUI又需要較強大的信號處理能力,因此我們不得不把目光放到了arm+dsp雙核開發(fā)系統(tǒng)上,但過去的雙核開發(fā)系統(tǒng)應(yīng)用相對較少,大多是選取一片獨立的arm芯片 ...…

查看全部問答∨

外包破解登陸器(限制武漢)價格面談

QQ 117223252 QQ 163479 http://www.xp13.com 能脫以上網(wǎng)站的登陸器的殼 可以修改里面圖片和連接地址 電話 13487084987 坐機 027-88230573…

查看全部問答∨

請問下各位大蝦,目前在調(diào)試W25Q32,miso引腳沒有輸出,怎么辦?

主芯片:lm3S9B92 dataflash:試過W25Q32和W25Q80 SPI時鐘:1Mbit 表現(xiàn)如下: 初始化SPI正常,讀取ID的值為0xff,用示波器看SCK和mosi都有信號,CS也有,SCK的頻率也確實是1Mbit,從而應(yīng)該可以判斷SPI的初始化沒有問題。而miso持續(xù)為高。MISO上 ...…

查看全部問答∨

【低功耗】LDO的選用技術(shù)

LDO 是新一代的集成電路穩(wěn)壓器,它與三端穩(wěn)壓器最大的不同點在于,LDO 是一個自耗很低 的微型片上系統(tǒng)(SoC)。LDO 按 其 靜 態(tài) 耗 流 來 分 , 分 為 OmniPowerTM / MicroPowerTM / NanoPowerTM 三種產(chǎn)品。OmniPowerTM LDO 的靜態(tài)電流在 10 ...…

查看全部問答∨

【項目外包】FPGA以太通信開發(fā)

FPGA以太通信開發(fā) 項目預(yù)算:¥ 50,000~100,000 開發(fā)周期: 14 天 項目分類: 嵌入式 競標要求: 項目標簽: fpga ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 禹城市| 绥棱县| 宝兴县| 门源| 凤阳县| 蓝田县| 木里| 邵阳县| 晋江市| 务川| 资源县| 株洲县| 泰来县| 应用必备| 龙胜| 柘城县| 新源县| 普宁市| 绥化市| 什邡市| 南陵县| 松桃| 南昌县| 镇原县| 洪湖市| 定襄县| 江川县| 睢宁县| 连山| 永康市| 新安县| 上林县| 东源县| 马尔康县| 拜城县| 安泽县| 西城区| 新营市| 乐都县| 板桥市| 琼中|