久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2268|回復: 0
打印 上一主題 下一主題
收起左側

STM32-SST25VF016B-SPI-mini 程序

[復制鏈接]
跳轉到指定樓層
樓主
轉載STM32-SST25VF016B-SPI-mini 程序,需要的下載

單片機源程序如下:
  1. /****************************************************************************
  2. * Copyright (C), 2011 奮斗嵌入式工作室
  3. *
  4. * 本例程在 奮斗版STM32開發板V2,2.1,V3,MINI上調試通過           
  5. *
  6. * 文件名: main.c
  7. * 內容簡述:
  8. *       演示將一段字符串寫入SST25VF016B的1頁中,然后讀出并通過USART1傳送出去,同時LED1亮。
  9.         字符串:SPI SST25VF016B Example: This is SPI DEMO, 終端上出現這一行字,說明SST25VF016B的讀寫正常
  10. *
  11. 定義:       
  12.         TXD1----- PA9-US1-TX
  13.         RXD1----- PA10-US1-RX
  14.         速率:115200,n,8,1
  15. * 文件歷史:
  16. * 版本號  日期       作者    說明
  17. * v0.2    2011-7-22 sun68  創建該文件
  18. *
  19. */
  20. /* Includes ------------------------------------------------------------------*/
  21. #include "stm32f10x.h"          
  22. #include "stm32f10x_usart.h"  

  23. extern void SPI_Flash_Init(void);
  24. extern unsigned char SST25_buffer[];

  25. /* Private define ------------------------------------------------------------*/
  26. #define TxBufferSize1   (countof(TxBuffer1) - 1)
  27. #define RxBufferSize1   (countof(TxBuffer1) - 1)

  28. /* Private macro -------------------------------------------------------------*/
  29. #define countof(a)   (sizeof(a) / sizeof(*(a)))

  30. /* Private variables ---------------------------------------------------------*/

  31. uint8_t TxBuffer1[] = "SPI SST25VF016B Example: This is SPI DEMO, 終端上出現這一行字,說明SST25VF016B的讀寫正常";

  32. /* Private function prototypes -----------------------------------------------*/
  33. void RCC_Configuration(void);
  34. void GPIO_Configuration(void);
  35. void NVIC_Configuration(void);

  36. void Delay(__IO uint32_t nCount);
  37. void USART_OUT(USART_TypeDef* USARTx, uint8_t *Data,uint16_t Len);
  38. void Usart1_Init(void);

  39. GPIO_InitTypeDef GPIO_InitStructure;

  40. int16_t USART_FLAG;

  41. extern void SST25_W_BLOCK(uint32_t addr, u8 *readbuff, uint16_t BlockSize);
  42. extern void SST25_R_BLOCK(uint32_t addr, u8 *readbuff, uint16_t BlockSize);
  43. /* Private functions ---------------------------------------------------------*/
  44. /****************************************************************************
  45. * 名    稱:int main(void)
  46. * 功    能:主函數
  47. ****************************************************************************/
  48. int main(void)
  49. {
  50.    uint8_t a=0;
  51.    uint16_t i=0;                          
  52.    RCC_Configuration();                                                           //設置系統時鐘  
  53.    
  54.    GPIO_Configuration();                                            //IO口設置                 
  55.    Usart1_Init();                               //串口1初始化
  56.    SPI_Flash_Init();                                                    //SPI1 SST25VF016B初始化

  57.    /* 將測試用的數據復制到讀寫緩存區里 */
  58.    for(i=0; i<TxBufferSize1;i++) SST25_buffer[i]=TxBuffer1[i];  
  59.    SST25_W_BLOCK(0, SST25_buffer,4096);                //將冊數數據寫入到SST25VF016B的0頁里
  60.    Delay(0xffff);
  61.    SST25_R_BLOCK(0, SST25_buffer,4096);                //從SST25VF016B的0頁里讀出數據
  62.    a=0;
  63.    for(i=0; i<TxBufferSize1;i++){
  64.            if(SST25_buffer[i]==TxBuffer1[i]) a=1;            //讀出的數據和測試數據進行比較, 以判別是否讀寫正常
  65.          else {a=0; i=TxBufferSize1;}
  66.    }
  67.    if(a==1) {
  68.            GPIO_SetBits(GPIOB, GPIO_Pin_5);                     //讀寫正確LED1 亮
  69.            USART_OUT(USART1,&SST25_buffer[0],TxBufferSize1);         //將讀出的數據通過串口輸出  
  70.    }
  71.    while (1);
  72. }
  73. /****************************************************************************
  74. * 名    稱:void Usart1_Init(void)
  75. * 功    能:串口1初始化函數
  76. ****************************************************************************/
  77. void Usart1_Init(void)
  78. {
  79.   GPIO_InitTypeDef GPIO_InitStructure;
  80.   USART_InitTypeDef USART_InitStructure;

  81.   RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1 , ENABLE);         //使能串口1時鐘

  82.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;                                  //USART1 TX
  83.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  84.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                     //復用推挽輸出
  85.   GPIO_Init(GPIOA, &GPIO_InitStructure);                                     //A端口

  86.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;                          //USART1 RX
  87.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;            //復用開漏輸入
  88.   GPIO_Init(GPIOA, &GPIO_InitStructure);                                  //A端口

  89.   USART_InitStructure.USART_BaudRate = 115200;                                                //速率115200bps
  90.   USART_InitStructure.USART_WordLength = USART_WordLength_8b;                //數據位8位
  91.   USART_InitStructure.USART_StopBits = USART_StopBits_1;                        //停止位1位
  92.   USART_InitStructure.USART_Parity = USART_Parity_No;                                //無校驗位
  93.   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;   //無硬件流控
  94.   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;                                        //收發模式

  95.   /* Configure USART1 */
  96.   USART_Init(USART1, &USART_InitStructure);                                                        //配置串口參數函數   
  97.    /* Enable the USART1 */
  98.   USART_Cmd(USART1, ENABLE);       
  99.   
  100. }
  101. /****************************************************************************
  102. * 名    稱:void USART_OUT(USART_TypeDef* USARTx, uint8_t *Data,uint16_t Len)
  103. * 功    能:串口輸出函數
  104. ****************************************************************************/
  105. void USART_OUT(USART_TypeDef* USARTx, uint8_t *Data,uint16_t Len){
  106.         uint16_t i;
  107.         for(i=0; i<Len; i++){
  108.                 USART_SendData(USARTx, Data[i]);
  109.                 while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);
  110.         }
  111. }
  112. /****************************************************************************
  113. * 名    稱:void Delay(__IO uint32_t nCount)
  114. * 功    能:延時函數
  115. ****************************************************************************/
  116. void Delay(__IO uint32_t nCount)
  117. {
  118.   for(; nCount != 0; nCount--);
  119. }
  120. /****************************************************************************
  121. * 名    稱:void RCC_Configuration(void)
  122. * 功    能:系統時鐘配置為72MHZ, 外設時鐘配置
  123. ****************************************************************************/
  124. void RCC_Configuration(void){

  125.   SystemInit();          
  126.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
  127.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC
  128.                                                   | RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOE , ENABLE);
  129. }
  130. /****************************************************************************
  131. * 名    稱:void GPIO_Configuration(void)
  132. * 功    能:通用IO口配置
  133. ****************************************************************************/  
  134. void GPIO_Configuration(void)
  135. {
  136.   GPIO_InitTypeDef GPIO_InitStructure;
  137.        
  138.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                                     //狀態LED1
  139.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                         //通用推挽輸出模式
  140.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                         //輸出模式最大速度50MHz
  141.   GPIO_Init(GPIOB, &GPIO_InitStructure);                                   
  142. }
復制代碼

所有資料51hei提供下載:
STM32-SST25VF016B-SPI-mini.7z (179.82 KB, 下載次數: 16)


KD`A_0P0PU7[(NN5FQ0GLKS.png (72.79 KB, 下載次數: 52)

文件內具體內容

文件內具體內容
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99一级毛片 | 中文字幕在线免费观看 | 久久国产麻豆 | 久久久妇女国产精品影视 | 亚洲一区视频 | 国产精品一区2区 | 亚洲精品成人 | 欧美成人影院在线 | 91九色麻豆| 久久国产精品一区二区三区 | 国产高清一区二区 | 中文字幕人成乱码在线观看 | 欧美a区 | 欧美亚洲日本 | 亚洲成人免费在线 | 久久综合久色欧美综合狠狠 | 麻豆一区一区三区四区 | 人人九九精| 国产精品国产馆在线真实露脸 | 亚洲欧美少妇 | 日本不卡一区二区三区在线观看 | 国产激情视频在线 | 亚洲精品国产综合区久久久久久久 | 欧美黑人体内she精在线观看 | 久热9| 免费成人在线网站 | 欧美理论在线观看 | 国产精品福利网站 | 五月婷婷在线播放 | 精品成人 | 国产精品污www一区二区三区 | 久久久久久综合 | 国产人久久人人人人爽 | 国产高清免费 | 逼逼视频 | 午夜视频在线免费观看 | 免费三级网 | 伊人狼人影院 | 欧美五月婷婷 | 91秦先生艺校小琴 | 蜜桃av一区二区三区 |