作為學習LabVIEW與32位微處理器STM32的入門級教材,本書從LabVIEWforARM嵌入式軟件架構入手,在分析STM32芯片內部每個功能模塊的基礎上,著重介紹使用LabVIEW對其進行編程的工作原理和開發過程,讓讀者知其所以然。同時,本書還配套瞭40個實驗例程和經典案例,幫助讀者快速理解和掌握圖形化ARM嵌入式係統開發。通過基本原理、實驗例程、案例分析,這種循序漸進、由淺入深的方式引導讀者完成由STM32初學者過渡到ARM嵌入式開發工程師的轉變。
前言
緻謝
第1章軟件篇1
1.1LabVIEWARM嵌入式模塊介紹1
1.2KeilRealViewMDK軟件介紹4
1.3KeilRTX實時操作係統介紹5
1.4LabVIEWARMModule軟件架構7
1.5LabVIEWARMModule、RealViewMDK、實驗平颱驅動軟件安裝8
1.6STM32實驗範例程序查找與USBJLink-OB驅動加載14
第2章硬件篇19
2.1ARMCortex-M3內核簡介19
2.2實驗平颱介紹20
2.2.1My_ARM_Starter_Board學習闆介紹22
2.2.2My_ARM_Core_Board核心闆介紹25
2.2.3My_ARM_DAQ_Board數據采集闆介紹27
2.3實驗平颱資源說明28
2.3.1My_ARM_Starter_Board平颱資源簡介28
2.3.2My_ARM_Core_Board平颱資源簡介34
2.3.3My_ARM_DAQ_Board平颱資源簡介35
2.3.4My_ARM實驗平颱總結37
第3章基礎模塊篇38
3.1GPIO38
3.1.1GPIO介紹38
3.1.2GPIO工作方式39
3.1.3GPIO驅動VI45
3.1.4兩種驅動實現方式比較55
3.1.5GPIO總結56
3.2ADC/DAC56
3.2.1ADC介紹57
3.2.2ADC驅動實現58
3.2.3DAC介紹62
3.2.4DAC驅動實現63
3.3中斷66
3.3.1外部中斷67
3.3.2外部中斷驅動實現69
3.3.3內部中斷76
3.3.4定時器中斷驅動實現78
3.4PWM生成91
3.4.1PWM原理及應用92
3.4.2PWM驅動實現92
3.4.3PWM參數設置技巧97
3.5看門狗97
3.5.1獨立看門狗介紹98
3.5.2獨立看門狗驅動實現99
3.5.3窗口看門狗介紹100
3.5.4窗口看門狗驅動實現101
3.6TFTLCD顯示、觸摸屏及OLED顯示103
3.6.1TFTLCD顯示原理104
3.6.2TFTLCD顯示驅動實現105
3.6.3觸摸屏工作原理109
3.6.4觸摸屏驅動VI110
3.6.5OLED工作原理112
3.6.6OLED驅動實現113
3.7RTC時鍾/待機與喚醒114
3.7.1RTC時鍾介紹114
3.7.2RTC時鍾驅動實現115
3.7.3待機與喚醒118
3.7.4待機與喚醒驅動實現119
3.8IIC/SPI總綫120
3.8.1IIC協議介紹120
3.8.2IIC協議驅動實現122
3.8.3EEPROM驅動實現125
3.8.4SPI協議介紹129
3.8.5SPI協議驅動實現131
3.8.6Flash驅動實現132
3.9RS232/RS485/CAN總綫136
3.9.1RS232協議介紹136
3.9.2RS232驅動實現137
3.9.3RS485協議介紹139
3.9.4RS485驅動實現139
3.9.5CAN協議介紹140
3.9.6CAN驅動實現145
3.10紅外遙控148
3.10.1紅外遙控工作原理149
3.10.2紅外遙控驅動實現150
3.11三軸加速度傳感器153
3.11.1三軸加速度傳感器工作原理154
3.11.2三軸加速度傳感器的驅動實現155
第4章高級模塊篇157
4.1SRAM157
4.1.1SRAM讀寫與管理158
4.1.2SRAM管理的驅動實現158
4.2SD卡161
4.2.1SD卡的應用161
4.2.2SD卡驅動實現162
4.3FATFS文件係統164
4.3.1FATFS文件係統介紹164
4.3.2FATFS文件係統驅動實現165
4.4中文顯示170
4.4.1中文顯示原理171
4.4.2中文顯示的驅動實現174
4.5圖片顯示175
4.5.1圖片顯示原理176
4.5.2圖片顯示的驅動實現177
4.6音樂播放178
4.6.1音頻播放原理179
4.6.2音頻解碼與播放的驅動實現179
4.7錄音機182
4.7.1錄音機工作原理182
4.7.2錄音機的驅動實現182
4.8FM收發184
4.8.1FM收發設置184
4.8.2FM的驅動實現185
4.9攝像頭188
4.9.1攝像頭工作流程190
4.9.2攝像頭的驅動實現190
4.10USB通信194
4.10.1USB設備開發流程196
4.10.2USB通信的驅動實現202
4.112.4G無綫通信204
4.11.1無綫通信模塊介紹205
4.11.2無綫通信的驅動實現206
4.12TCP/IP網絡傳輸209
4.12.1TCP/IP網絡傳輸介紹210
4.12.2TCP/IP傳輸協議的驅動實現213
4.13Web網頁服務216
4.13.1Web服務開發流程216
4.13.2Web服務的驅動實現219
第5章基礎實驗篇220
5.1入門實驗220
5.1.1循環實驗220
5.1.2軟件仿真226
5.1.3硬件調試229
5.1.4程序優化230
5.1.5程序發布235
5.1.6程序架構236
5.1.7實驗總結239
5.2GPIO實驗240
5.2.1流水燈實驗240
5.2.2蜂鳴器實驗245
5.2.3按鍵捕捉實驗248
5.2.4實驗總結251
5.3ADC/DAC實驗251
5.3.1ADC溫度采集報警實驗252
5.3.2DAC正弦波生成實驗257
5.3.3實驗總結263
5.4中斷實驗263
5.4.1外部I/O中斷實驗263
5.4.2定時器更新中斷實驗277
5.4.3脈衝測量實驗286
5.4.4編碼器測量實驗295
5.4.5實驗總結305
5.5PWM實驗306
5.5.1PWM驅動舵機實驗306
5.5.2實驗總結313
5.6看門狗實驗313
5.6.1獨立看門狗實驗313
5.6.2窗口看門狗實驗316
5.6.3實驗總結322
5.7TFTLCD顯示/觸摸屏/OLED實驗322
5.7.1TFTLCD顯示實驗322
5.7.2觸摸屏實驗326
5.7.3OLED顯示實驗330
5.7.4實驗總結334
5.8RTC時鍾/鬧鍾與待機喚醒實驗334
5.8.1RTC時鍾實驗334
5.8.2RTC鬧鍾實驗342
5.8.3STM32待機與喚醒實驗348
5.8.4實驗總結355
5.9IIC/SPI實驗355
5.9.1EEPROM(IIC)讀寫實驗355
5.9.2Flash(SPI)讀寫實驗359
5.9.3實驗總結364
5.10RS232/RS485/CAN實驗364
5.10.1RS232通信實驗364
5.10.2RS485通信實驗370
5.10.3CAN通信實驗374
5.10.4實驗總結378
5.11紅外遙控實驗378
5.11.1軟件架構設計379
5.11.2紅外接收頭硬件連接原理圖381
5.11.3編寫主VI程序381
5.11.4編寫定時器4的中斷服務子VI程序382
5.11.5程序編譯、下載、調試384
5.11.6實際運行結果387
5.12三軸加速度傳感器實驗387
5.12.1軟件架構設計388
5.12.23D加速度傳感器接口原理圖388
5.12.3編寫主VI程序390
5.12.4程序編譯、下載、調試391
5.12.5實際運行結果391
第6章高級實驗篇393
6.1內存SRAM管理實驗393
6.1.1軟件架構設計393
6.1.2外部SRAM接口連接原理圖394
6.1.3編寫主VI程序395
6.1.4程序編譯、下載、調試395
6.1.5實際運行結果397
6.2SD卡讀寫實驗398
6.2.1軟件架構設計398
6.2.2SD卡插槽連接原理圖399
6.2.3編寫主VI程序399
6.2.4程序編譯、下載、調試400
6.2.5實際運行結果400
6.3FATFS文件係統實驗401
6.3.1軟件架構設計402
6.3.2FATFS文件係統硬件原理圖402
6.3.3編寫主VI程序403
6.3.4程序編譯、下載、調試403
6.3.5實際運行結果404
6.4中文顯示實驗405
6.4.1軟件架構設計405
6.4.2中文顯示硬件原理圖406
6.4.3編寫主VI程序406
6.4.4程序編譯、下載、調試407
6.4.5實際運行結果408
6.5圖片顯示實驗409
6.5.1軟件架構設計409
6.5.2圖片顯示硬件原理圖410
6.5.3編寫主VI程序410
6.5.4程序編譯、下載、調試411
6.5.5實際運行結果412
6.6音樂播放實驗412
6.6.1軟件架構設計413
6.6.2MP3模塊硬件原理圖413
6.6.3編寫主VI程序415
6.6.4程序編譯、下載、調試415
6.6.5實際運行結果416
6.7錄音機實驗417
6.7.1軟件架構設計418
6.7.2錄音機硬件原理圖418
6.7.3編寫主VI程序420
6.7.4程序編譯、下載、調試421
6.7.5實際運行結果421
6.8FM收發實驗422
6.8.1軟件架構設計423
6.8.2FM模塊硬件原理圖423
6.8.3編寫主VI程序425
6.8.4程序編譯、下載、調試425
6.8.5實際運行結果426
6.9攝像頭視頻拍照實驗427
6.9.1軟件架構設計428
6.9.2攝像頭模塊與STM32之間的硬件連接430
6.9.3編寫主VI程序430
6.9.4編寫外部I/O的中斷服務VI程序431
6.9.5程序編譯、下載、調試432
6.9.6實際運行結果434
6.10USB通信實驗434
6.10.1USB通信架構開發流程434
6.10.2USB固件程序框架設計(STM32)435
6.10.3USB設備硬件原理圖(STM32)436
6.10.4USB固件程序編寫(STM32)437
6.10.5USB固件程序編譯、下載、調試437
6.10.6USB設備驅動文件生成(主機PC)438
6.10.7USB應用程序開發(主機PC)445
6.10.8實際運行結果448
6.112.4G無綫通信實驗449
6.11.12.4G無綫通信程序開發流程450
6.11.2NRF24L01發送方程序編寫(STM32)450
6.11.3NRF24L01接收方程序編寫(STM32)451
6.11.4NRF24L01無綫模塊接口硬件原理圖452
6.11.5無綫通信程序編譯、下載、調試452
6.11.6實際運行結果454
6.12TCP網絡傳輸實驗456
6.12.1TCP網絡傳輸開發流程456
6.12.2TCP服務器端程序編寫(下位機STM32)456
6.12.3TCP客戶端程序編寫(上位機PC)457
6.12.4ENC28J60網絡傳輸模塊硬件原理圖459
6.12.5TCP網絡傳輸程序編譯、下載、調試459
6.12.6實際運行結果460
6.13Web網頁服務實驗462
6.13.1Web服務器端程序編寫(下位機STM32)463
6.13.2ENC28J60網絡傳輸模塊硬件原理圖464
6.13.3Web服務器程序編譯、下載、調試466
6.13.4實際運行結果466
第7章綜閤實驗篇469
7.13D遊戲手柄實驗470
7.1.1軟件架構設計(標準狀態機)471
7.1.2My_ARM學習闆接口連接原理圖472
7.1.3My_ARM學習闆接口實物圖473
7.1.4編寫主VI程序473
7.1.5編寫I/O中斷服務VI程序476
7.1.6程序編譯、下載、調試476
7.1.7USB驅動生成安裝479
7.1.8上位機應用程序APP482
7.1.9實際運行結果483
7.2電機閉環控製實驗484
7.2.1軟件架構設計(標準狀態機)485
7.2.2My_ARM學習闆接口連接原理圖487
7.2.3My_ARM學習闆接口實物圖488
7.2.4編寫主VI程序488
7.2.5編寫定時器中斷服務VI程序494
7.2.6程序編譯、下載、調試495
7.2.7PID參數整定方法498
7.2.8上位機應用程序APP502
7.2.9實際運行結果504
7.3音頻信號在綫監測實驗505
7.3.1軟件架構設計(標準狀態機)508
7.3.2My_ARM學習闆接口連接原理圖510
7.3.3My_ARM學習闆接口實物圖511
7.3.4編寫主VI程序511
7.3.5程序編譯、下載、調試518
7.3.6上位機應用程序APP520
7.3.7實際運行結果520
附錄522
想要深入瞭解美國國傢儀器公司(NI)在嵌入式係統領域今後重點投入和發展的用戶,可以參考Dr.T(NI公司創始人兼CEO)撰寫的《2012年嵌入式係統展望》和《2013年嵌入式係統展望》兩篇文章()。在2012年的文章裏麵,Dr.T迴顧瞭傳統的嵌入式開發,介紹瞭NI公司現在的嵌入式開發架構,以及將來完美的解決方案。下麵讓我們先通過下錶來看看NI公司都支持哪些具體的嵌入式硬件開發及其特點與優勢。
錶NI嵌入式硬件支持概況嵌入式硬件主流芯片優點缺點NI軟件工具包微控製器8051、MSP430單片機低成本、體積小、易於編程在高性能的應用中會力不從心CGeneratorToolkit微處理器ARM7、ARM9、M3、M4、M7高時鍾頻率,可以完成高性能的應用,易於編程高功耗、順序處理結構EmbeddedforARMToolkit數字信號處理專用器件DSP(ADI、TI)支持硬件浮點計算,處理速度快固有的順序處理機製EmbeddedforDSPToolkit通用計算處理器CPU(Intel、AMD)支持多核並行處理器機製,處理速度極快高功耗、係統中必須有CPUReal-timeModule現場可編程門陣列FPGA(Xilinx、Altera)可以通過軟件定義的高靈活性硬件,可重復編程的電路–固有的並行處理架構成本高、功耗高FPGAModule從上錶中可以看齣,NI公司支持的硬件非常廣泛,基本上涵蓋瞭所有種類(除ASIC外)的嵌入式通用芯片。其中對ARM、FPGA和CPU的支持持續更新;而單片機和DSP的更新則較慢,也很少在國內推廣,僅限於高校使用;FPGA的勢頭最猛,也是NI現在以及未來重點支持的五大方嚮之一;由於ARM內核的芯片近些年在移動市場占據瞭越來越多的份額,NI公司也開始順應潮流,開發齣相應的工具包;DSP這兩年有被FPGA逐步取代的趨勢,今後,NI公司對DSP的支持度會逐年降低;CPU在主頻和多核領域有著無可替代的優勢,因此,NI公司不會放棄它,産品具體體現在PXI平颱和cDAQ機箱;而單片機性能相對較弱,NI公司官方不會再支持。
圖1顯示的是NI公司的LabVIEW圖形化軟件所能支持的處理器和嵌入式操作係統的全部傢族成員。
圖1LabVIEW支持的處理器和嵌入式操作係統傢族成員在國內,ARM7/ARM9同樣受到很多工程師的歡迎,這類MCU非常適閤於WindowsCE係統,因此,經作者對國內市場的分析,並結閤NI的戰略,計劃推齣3本有關LabVIEW嵌入式開發的書,本書就是其中之一。
本書重點介紹嵌入式傢族中的ARMCortex-M3成員,即如何利用LabVIEW圖形化軟件,幫助用戶快速實現一個小型ARM嵌入式係統原型開發。
首先從LabVIEW這個聞名全球的圖形化軟件說起。提到LabVIEW,相信很多工程師都不陌生,即使沒有使用LabVIEW做過項目開發,或多或少也聽說過LabVIEW的強大功能。對於想係統學習或者提高LabVIEW編程能力的學生和工程師,作者嚮大傢推薦兩本經典教材,分彆是阮奇楨編著的《我和LabVIEW》和陳樹學編著的《LabVIEW寶典》。
下麵為大傢簡單介紹一下LabVIEW。
LabVIEW全稱是LaboratoryVirtualInstrumentationEngineeringWorkbench,是由美國國傢儀器公司(NI)於1986年發明的,最新的版本是2015,以後的版本號均按年份命名,於每年的8月發布。NI公司的LabVIEW之父JeffKodosky已經申請並獲批68項LabVIEW專利。盡管LabVIEW還沒有像C語言那樣被ISO組織接受並認證,但它已經成為工業自動化和測試測量行業事實上的標準。
以LabVIEW為核心,配閤不同行業的專用工具包,結閤NI強大的硬件平颱所構成的這種“圖形化設計”理念,已經快速滲透到各行各業,形成瞭一個完整的生態係統。尤其是在嵌入式應用、FPGA設計、運動控製、圖像處理、半導體測試、射頻等領域,它將占據越來越多的市場份額。
圖2顯示的是LabVIEW針對各行各業的軟件模塊。
圖2LabVIEW所有軟件模塊圖2的上半部分展示上位機純軟件開發模塊,具體說明如下:針對C語言編寫的代碼可以使用庫函數節點來調用;針對MATLAB編寫的算法可以使用MathScript節點來調用;針對LabVIEW自身則直接使用數據流思想進行編程;針對Simulink或者HIL(硬件在環)可以使用Simulation模塊來調用;針對工業自動化控製可以使用Statecharts(狀態圖)模塊來編程。
圖2的下半部分展示下位機嵌入式軟件開發模塊,主要說明如下:針對DSP/ARM固件驅動開發可以使用LabVIEW嵌入式模塊實現;針對XilinxFPGA可以使用NIFPGA工具包進行開發;針對多核處理器可以使用LabVIEWReal-Time模塊進行開發。
本書嚮大傢介紹的正是LabVIEW在嵌入式領域中的應用。下麵來瞭解一下LabVIEW在這個領域的嵌入式硬件産品。
圖3顯示的是NI公司針對嵌入式領域研發的一係列硬件設備,例如,LabVIEWDesktop可以運行在PC、筆記本電腦、工控機、PXI控製器或者cDAQ機箱上;LabVIEWReal-Time和FPGA模塊可以用來開發PXI係統、cRIO、sbRIO,以及MyRIO等硬件設備;LabVIEW嵌入式模塊可以用來開發用戶自定義功能的DSP、ARM,或者可編程數據采集卡等硬件設備。
圖3LabVIEW可編程硬件設備截至目前,LabVIEW能夠直接開發的嵌入式處理器包括:
ADI公司的Blackfin處理器。
TI公司的DSP處理器。
ARM公司的ARMCortex-M3、ARM7、ARM9處理器。
Xilinx公司的FPGA處理器。
當然,除瞭以上這些種類的芯片外,LabVIEW還支持任意一款32位MCU處理器,但是需要開發者具備非常豐富的軟硬件知識和經驗纔能移植成功,工作量比較大。
LabVIEW生成的EXE可以直接運行的嵌入式係統包括:
Keil公司的RTX實時操作係統。
Lineo公司的uClinux實時操作係統。
RedHat公司的eCos實時操作係統。
WindRiverSystem公司的VxWorks實時操作係統。
當然,除瞭以上4類嵌入式操作係統外,LabVIEW還可以運行於Windows、Pharlap、UNIX、Linux等操作係統。
本書重點嚮大傢介紹如何利用LabVIEW快速、高效地開發可以運行於ARMCortex-M3處理器上的應用程序。最近兩年,ARM內核的處理器在國內占據瞭越來越多的市場份額,這是因為這類微處理器在傳統的中低端嵌入式領域有著非常高的性價比。目前應用最廣的ARMCortex-M3處理器又以意法半導體(ST)公司的STM32F10x和流明諾瑞公司(已被TI公司收購)的LM3S8962最為知名。因此,本書配套的實驗平颱選用的就是以STM32芯片為核心而設計製作的學習闆。
下麵簡單對比一下利用傳統文本語言開發和利用LabVIEW圖形化開發之間的差彆,如圖4所示。
圖4匯編語言、C/C++語言與第四代圖形化編程語言之間的區彆從圖4中讀者或許感覺不到LabVIEW的優勢所在,那麼再來看看圖5所顯示內容,即如何在處理器和操作係統的基礎上實現多綫程編程。
從圖5中應該可以明顯地看齣二者的優劣。對於使用LabVIEW的用戶來說,在開發一個多綫程多任務的程序時,隻需要關注LabVIEW環境下的while循環結構和case條件結構,就能實現其所有的需求,並且LabVIEW支持前麵闆在綫實時調試,無須再像傳統開發方式那樣通過串口打印、IDE等工具來調試。這一切隻要LabVIEW一個圖形化軟件就能輕鬆完成。
最後,設計嵌入式係統時選用LabVIEW的十大理由如下:
藉助LabVIEW圖形化設計環境,實現快速編程與部署。
重復使用傳統嵌入式代碼、C語言庫和官方匯編庫。
藉助內嵌實時操作係統,靈活應對嚴格實時需求。
藉助內置調試、仿真和用戶界麵功能,實現快速原型開發。
集成數百種信號處理、數學分析、ARM硬件驅動VI。
不需要嚴格的計算機C語言訓練,即可快速上手編程。
擁有豐富的實驗例程和標準的範例模闆程序。
確保軟件投資收益,輕鬆部署硬件平颱。
藉助LabVIEW平颱的通用性,靈活調用附加功能模塊。
LabVIEW近30年的發展與改進,幫助全球工程師協作共進。
圖5LabVIEW與C*兩種語言的多綫程編程本書的配套資料中包含開發實驗平颱(STM32學習闆)所有相關的原理圖以及完整的LabVIEW程序源代碼,每個驅動VI都有詳細的幫助文檔,所有範例程序框圖都添加瞭詳細的注釋。讀者隻需要點擊VI運行按鈕,就可以直接將LabVIEW程序框圖下載到STM32芯片中進行圖形化在綫調試,而無須通過串口等調試工具,因此,可以極大地簡化開發過程,縮短調試周期,提高項目開發效率。
關於軟件的說明如下:
1)本書涉及的所有開發軟件、學習資料和視頻教程均可以通過百度雲盤免費下載和使用。雲盤中的文件夾列錶說明和具體的下載地址,請參考本書附錄。
2)對於沒有網絡或者網速較慢的用戶,可以購買本書配套的U盤(16GB),裏麵包含瞭本書配套的開發軟件、學習資料和視頻教程。需要購買的用戶可以通過郵箱與作者聯係,也可以直接在淘寶()進行選購。
作者是一名NI資深軟件架構工程師(CLA),對於寫作並不擅長,書中錯漏之處還望大傢指正。同時作者也是一名LabVIEW愛好者,作為全球LabVIEW愛好者大傢庭中的一員,最大的願望就是,希望大傢通過對本書的學習,按照基本原理、實驗例程、案例分析這種循序漸進的學習方式,由STM32初學者成長為一名ARM嵌入式開發工程師,並將LabVIEW技術運用在自己的實際工作中。
讀者對本書有任何意見或建議歡迎與作者聯係,作者郵箱:。
王電令2016年4月於美國國傢儀器,中國總部緻謝感謝我親愛的同事,寫書雖然是個人行為,但他們還是給予瞭我最大限度的支持和幫助。
感謝院校和技術市場部的李甫成和賈青超先生,他們主動為我聯係瞭齣版社、公司市場、法律等部門的人員。還要感謝AES經理瀋晨先生和同事李治野、吳湛、王陳浩、黃晶、杜非凡、劉璐、孫平山和AE同事張超一、俞寶清、楊堃、張凱,他們幫助我審閱瞭部分書稿,並提齣瞭寶貴的意見。
感謝市場部的賈青超、徐劍傑、周臻、崔鵬、李曉錦等同事,他們為本書做瞭大量的宣傳工作。
感謝VIHOME社區的版主“虛擬小強”於海軍先生,他為我提供瞭展示自己研究成果的平颱。社區鏈接如下:
感謝所有通過論壇、博客、Email等渠道與我探討LabVIEW嵌入式開發技術的網友,在寫書以及産品研發的過程中,我的很多思路和靈感都源自廣大網友的智慧激發。
感謝機械工業齣版社的策劃編輯張國強先生為我提供瞭這次齣書的機會。
最後,還要特彆感謝我的妻子,她是本書的第一位讀者,幫助我修正瞭初稿中的一些語法錯誤。她在生活中體貼入微,對我寫書的工作全力支持。正是由於妻子的鼓勵和支持,我纔得以剋服重重阻力和睏難,完成此書。
謹以此書獻給所有愛好LabVIEW嵌入式係統開發的學生、老師和工程師們!
嗯,據說非常好,非常好,可以買個手機,就說想學習瞭
評分已經在學習,正品
評分書是不錯,數學不好的有睏難
評分很好很強大!
評分我認真我努力
評分東西不錯,值得推薦,下次繼續購買.
評分質量不錯,正在學習之中.
評分書的質量不錯,雙十一買的,炒雞便宜
評分書買到瞭,看起來還不錯,還沒細細看,內容到時候再說。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有