原创 【方法】Ilitek ILI9325、ILI9328、ILI9341 LCD TFT彩屏利用Memory Read指令讀取屏幕上顯示的內容

網上很多彩屏例程都通過0號命令(有時也稱爲0號寄存器)讀取彩屏的ID號,以此來判斷彩屏的芯片型號,然而ILI9341芯片的0號命令是一個空操作(No Operation),無法得到器件ID。 4號命令和0xda~0xdc命令雖然是讀取I

原创 【程序】STM32F103VE單片機通過FSMC驅動Risym 2.8寸TFTLCD 320x240分辨率 ILI9325/9328彩屏(ID寄存器讀出來爲0是正常現象)

前段時間在淘寶的Risym旗艦店買了一款2.8寸的TFTLCD彩屏,分辨率爲320x240。這款液晶屏的控制芯片是ILI9325或ILI9328。 賣家給的資料是一個壓縮包,以前下載下來還能打開。現在下載下來打開提示“不可預料的壓縮文

原创 【程序】在STM32F103RE裸機環境下用lwip 2.1.2驅動88W8801 WiFi模塊並運行FTP服務器讀寫W25Q128上存儲的文件(20200703版)

關於本程序更詳細的信息,請參閱:https://blog.csdn.net/ZLK1214/article/details/107115317 程序下載地址:https://pan.baidu.com/s/1sTquV7eEjQASSKA

原创 【程序】在STM32單片機上用1700行代碼實現基於LwIP 2.1.2協議棧raw API和FatFs文件系統的FTP服務器(20200703版)

本程序在LwIP 2.1.2協議棧上用raw API實現了一個FTP服務器。文件存儲在Winbond的W25Q128 SPI Flash中,通過FatFs讀寫文件,建立了FAT文件系統,容量爲16MB。程序只有1700多行代碼,由頭文件f

原创 【方法】20腳的STM32F042F6單片機只有32KB的Flash和6KB的SRAM,移植HAL庫裏面的USB大容量存儲設備(MSC)時,如何讀寫頁大小爲4KB的W25Q128存儲器?

程序下載地址:https://pan.baidu.com/s/1n4J0pBUjliev4Pio6gOUNQ(提取碼:4gt6) STM32F042F6單片機的USB自帶了內部的1.5kΩ上拉電阻,所以電路上只需要接兩個22Ω的電阻就可

原创 VMWare虛擬機下Fedora30升級Fedora31,重啓後無法啓動系統,出現alloc magic is broken at 0xXXXX的錯誤

如圖所示,昨天晚上點了那個Download按鈕,下載Fedora31,下載完成後提示要重啓安裝。重啓之後就黑屏了,一大串白色的字: alloc magic is broken at 0xXXXX 啓動不了系統,昨天晚上太晚了就沒繼續弄了

原创 STM32F103ZE單片機只用一個定時器溢出中斷就實現GPIO模擬串口收發數據,不用外部中斷和定時器輸入捕獲中斷

本文使用的單片機爲STM32F103ZE,使用的單片機引腳爲PA9(發送)和PA10(接收)。晶振爲8MHz,程序採用HAL庫編寫。 程序下載地址:https://pan.baidu.com/s/13DEWdpupCG3REGTTAJYu

原创 【程序】STM32F107VC單片機驅動DP83848以太網PHY芯片,移植lwip 2.1.2協議棧,並加入網線熱插拔檢測的功能(HAL庫)

Keil5工程下載地址:https://pan.baidu.com/s/1Uf0eRFB35_-Sw_ovQf2Kwg(提取碼:694k) 開發板: 杜邦線傳輸高速數字信號容易出錯,所以在用麪包板搭建開發環境時,最好使用25MHz時鐘的

原创 【USB】STM32F107VC單片機上完全用寄存器實現的USB OTG Device模式的大容量存儲設備

本程序是從STM32F103C8的從USB上移植過來的:https://blog.csdn.net/ZLK1214/article/details/78972484 本程序的目的是爲了演示STM32 USB OTG寄存器的使用方法以及SC

原创 在Keil MDK 5裏面直接創建使用HAL庫的STM32工程的方法(不使用STM32CubeMX)

本文使用的單片機爲STM32F030C8。 【示例程序代碼】 注:“= {0}”語句相當於原來標準庫中的GPIO_StructInit函數。 全局變量和靜態局部變量默認已經清零,所以不需要寫“= {0}”。而普通局部變量默認值爲隨機值,所

原创 【C語言調用Win32 COM組件】C語言通過COM創建快捷方式、設置Win7任務欄圖標進度條、使用MSXML6.0的IXMLDOMDocument讀取XML文件的方法

Win32下的COM組件其實也可以在不支持類的C語言裏面使用。 以下爲示例代碼。 /* 這個程序只能在C編譯器下編譯成功, 請確保源文件的擴展名爲c */ #define COBJMACROS #include <MsXml6.h>

原创 【方法】STM32F103C8單片機在Keil 5環境下使用C++編寫程序,並將printf和cout重定向到串口

程序下載地址:https://pan.baidu.com/s/1SWQRwVQ53bvI50Iqkgpquw(提取碼:s7d6) 首先,用pragma指令禁用半主機模式,防止調用printf就出現HardFault。然後在std命名空間中

原创 【解決方案】STM32F429IG單片機採用SDRAM驅動LTDC液晶屏,讀NAND Flash數據時液晶屏閃屏很厲害的解決辦法

LTDC驅動800×480的彩色LCD液晶屏,使用STemWin圖形庫顯示圖片,其中SDRAM用來做顯存。LTDC的頻率爲30MHz。 /* 初始化LTDC */ // 使用外部SRAM作顯存時, 時鐘頻率不能太高 clk.Periph

原创 【解決方案】STM32F103C8單片機運行CubeMX生成的CDC虛擬串口的程序,設備能枚舉成功但不能啓動的解決辦法

這是因爲USB的描述符出了問題。 Win10系統下不需要裝任何驅動就能使用USB虛擬串口,但更低版本的系統比如Win7則必須要安裝ST官方提供的VCP驅動:STM32 Virtual COM Port Driver(STSW-STM321

原创 【解決方案】STM32單片機實現USB DFU IAP在線燒寫程序的功能,但JumpToApplication跳轉到用戶程序時出現HardFault錯誤的解決辦法

跳轉代碼如下: /* DFU工具下載的子程序雖然起始地址不是0x08000000 (由項目屬性Target選項卡中的IROM1配置) 但是也可以在Keil中直接下載程序, 而且還能使用ST-Link進行程序調試 只要在DFU