乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      STM32F103C8T6 SD/Micro TF卡 SFATS 軟SPI 硬SPI

       goodwangLib 2019-05-16

      使用環(huán)境(藍(lán)色粗體字為特別注意內(nèi)容)
      1、軟件環(huán)境:Keil MDK 5.15
      2、硬件環(huán)境:STM32F103C8T6最小系統(tǒng),Micro TF卡

      在一個(gè)項(xiàng)目中需要用到SD卡,于是在某寶買(mǎi)了一塊Micro TF卡插槽,SPI驅(qū)動(dòng):

      貌似不用那個(gè)小芯片好像可以用IO口直接驅(qū)動(dòng)TF卡,不知道那個(gè)小芯片干嘛用的,也沒(méi)工夫去追究了,廢話少說(shuō),先來(lái)看接線:

      1. TF卡模塊   STM32單片機(jī)
      2. GND     ->    GND
      3. CS      ->    PB12/SPI2_NSS
      4. SCK     ->    PB13/SPI2_SCK
      5. MISO   ->    PB14/SPI2_MISO
      6. MOSI   ->    PB15/SPI2_MOSI


      關(guān)于CS/NSS管腳,即我們熟知的片選信號(hào),作為主設(shè)備N(xiāo)SS管腳為高電平,從設(shè)備N(xiāo)SS管腳為低電平。

      一開(kāi)始為了性能考慮,打算使用硬件SPI2,后來(lái)發(fā)現(xiàn)速度太快了,SD/TF卡的速度跟不上,調(diào)了半天調(diào)不出來(lái),必須降低APB總線速率:

      //配置APB1(PCLK1)鐘=AHB 1/2時(shí)鐘

       RCC_PCLK2Config(RCC_HCLK_Div4); //72/4=18MHz ,會(huì)降低總線頻率,導(dǎo)致串口不正常!慎用!

      但是總線速率一下降,延時(shí)函數(shù),串口通信函數(shù)都會(huì)受影響,于是考慮使用兩種方式實(shí)現(xiàn)即硬件SPI+軟件模擬SPI。

      最終使用軟件模擬SPI并且移植SFATS,讀取2G的SD卡成功,

      main函數(shù)如下 

      1. /*******************************************************************************
      2. * @file SDFatFS/source/main.c
      3. * @author Pang
      4. * @version V1.0.2
      5. * @date 1/1/2019
      6. * @brief
      7. ******************************************************************************/
      8. #include 'common.h'
      9. #include 'led.h'
      10. #include 'delay.h'
      11. #include 'usart_printf.h'
      12. char path[10] = '0:';// SD卡根目錄
      13. FATFS fs;
      14. char wbuff[] = 'This is FATFS function test\r\n * f_open\r\n * f_write\r\n * f_close\r\n';
      15. char wbuff2[512 * 26];
      16. // *******************************************************************************
      17. // Function Name : main
      18. // Description :
      19. // Input : None
      20. // Output : None
      21. // Return : None
      22. // *******************************************************************************
      23. int main(void)
      24. {
      25. u16 i, j;
      26. LED_Init();
      27. Hardware_Configuration();
      28. ffext_mount(0, &fs);
      29. ffext_scanfiles (path);
      30. for(i = 0; i < 26; i++)
      31. {
      32. for(j = 0; j < 512; j++)
      33. {
      34. wbuff2[i * 512 + j] = 'A' + i;
      35. }
      36. }
      37. ffext_read('0:/test/test.ini', wbuff2, (512 * 26), FA_OPEN_ALWAYS | FA_READ);
      38. ffext_write('0:/test/out.ini', wbuff2, (512 * 26), FA_OPEN_ALWAYS | FA_WRITE);
      39. printu('>%s', wbuff2);
      40. // ffext_write('0:CardInfo.txt', wbuff, sizeof(wbuff)-1, FA_OPEN_ALWAYS | FA_WRITE);
      41. // ffext_write('0:ffext2.ini', wbuff2, (512*26), FA_OPEN_ALWAYS | FA_WRITE);
      42. for(i = 0; i < 26; i++)
      43. {
      44. for(j = 0; j < 512; j++)
      45. {
      46. wbuff2[i * 512 + j] = 0;
      47. }
      48. }
      49. ffext_read('0:ffext2.ini', wbuff2, (512 * 26), FA_OPEN_ALWAYS | FA_READ);
      50. ffext_write('0:ffext1.txt', wbuff2, (512 * 26), FA_OPEN_ALWAYS | FA_WRITE);
      51. while (1)
      52. {
      53. }
      54. }

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多