原创 【方法】關閉Visual Studio 2019的代碼自動格式化功能

在Visual Studio 2019中編寫C語言代碼,在定義指針變量的時候,星號*總是自動跑到左邊去,很煩人。比如char *s自動變成char* s。 關閉這個自動格式化代碼的功能的方法是,選擇Tools菜單中的Options命令,在

原创 【解決方案】STM32F107VC單片機下運行STM32CubeMX生成的USB_OTG Mass Storage工程,無法識別USB設備的解決辦法

這是因爲:CubeMX生成的代碼裏面,沒有響應OTG_FS_IRQn中斷。 USB設備模式的電路如下。該電路適合所有的STM32型號。 紅框部分爲上拉電阻,STM32F1(如STM32F103和STM32F107)才需要這部分電路,而ST

原创 【程序】Marvell 88W8801 WiFi模塊連接路由器,並使用lwip2.0.3建立http服務器(20190314版)

該程序是舊版本!最新版本爲20200208版:https://blog.csdn.net/ZLK1214/article/details/104229202 本程序所用的單片機型號爲:STM32F103VE或STM32F407VE 復位引

原创 【程序】STM32F407VE單片機驅動兩片TJA1050 CAN收發器並進行雙CAN通信

【連線】 模塊必須是5V供電。單片機的CAN_TX接模塊的TX,CAN_RX接RX。 【CAN模塊電路圖】 【程序】 Keil工程中不要勾選Use MicroLIB! 晶振採用的是8MHz。 main.c: #include <st

原创 【方法】STM32 FreeRTOS系統errno變量做到線程安全的方法

默認情況下,移植完FreeRTOS系統後,errno變量並不是線程安全的,所有的線程都是共用一個全局的errno變量。 爲了解決這個問題,可以重寫Keil MDK的__aeabi_errno_addr函數重新指定errno變量的存放位置,

原创 在PCB板上調試104(0.1μF)獨石電容驅動MAXIM MAX3232串口芯片的心得

 如圖,STM32F103C8單片機的USART1串口連接MAX3232芯片,原本是用的4個50V 0.1μF的有極性電解電容,串口能在115200波特率下正常收發。 電路圖如下: PCB走線如下: 其中9針串口插座採用的是Alti

原创 【BUG處理】STM32F1和F2單片機上用HAL庫的USART串口接收函數HAL_UART_Receive_IT循環接收串口字符,串口接收大批量數據後突然死機,不能繼續接收的解決辦法

其實說到底,就是Overrun(USART_SR_ORE)在作怪。 【問題描述】 程序採用FreeRTOS操作系統,主函數裏面調用HAL_UART_Receive_IT接收串口字符,在中斷回調函數HAL_UART_RxCpltCallba

原创 【經驗分享】調試STM32F107VC單片機驅動DP83848以太網PHY芯片時遇到的問題

調試時使用的程序:https://blog.csdn.net/ZLK1214/article/details/105457370 【杜邦線(或普通電線)影響時鐘信號的完整性】 筆者調試STM32F107VC單片機驅動DP83848以太網芯

原创 【方法】STM32F429IG單片機用LTDC驅動正點原子7寸RGB彩色觸摸屏,並裸機移植STemWin圖形庫

【器件型號】 單片機採用STM32F429IG,運行頻率爲180MHz,外部晶振HSE的頻率爲25MHz。 開發板採用外部32MB的SDRAM內存作顯存。顯示屏分辨率爲800×480,顏色格式爲RGB565,每個像素佔2個字節(顯示半透明

原创 【解決方案】STM32L152單片機驅動段碼LCD屏,執行HAL_LCD_Init函數失敗返回HAL_TIMEOUT,長時間卡在LCD_FLAG_RDY的while循環裏面的解決辦法

STM32L152單片機驅動段碼LCD屏,HAL_LCD_Init函數執行失敗,卡在LCD_FLAG_RDY裏面,函數返回HAL_TIMEOUT /*!< Wait Until the LCD Booster is ready */ w

原创 【程序更新】Marvell 88W8801測速器上位機程序和lwip2.1.2 dhcpd服務器更新(20200213)

源程序:https://blog.csdn.net/ZLK1214/article/details/104229202 更新包下載地址:https://pan.baidu.com/s/1Gv6lTrABvgZU1kH2vvRkKw(提取碼

原创 STM32F1單片機通過SPI方式驅動88W8801的代碼

工程下載地址:https://pan.baidu.com/s/1myogwFS687nCnsPEzU9ySQ 代碼: /* 定義與單片機寄存器操作和模塊接口相關的函數, 方便在不同平臺間移植 */ // 單片機: STM32F103VE

原创 【USB】STM32F103C8單片機操作USB寄存器實現USB設備的枚舉過程

本程序實現了主機枚舉USB設備的完整過程,設備狀態由Powered狀態轉變爲最終的Configured狀態,全部由STM32寄存器實現,不涉及複雜的庫函數。 設備的枚舉類型是USB大容量存儲(Bulk Only型)。端點0爲控制端點,端點

原创 【方法】STM32F429IG單片機FMC計算NAND Flash ECC校驗碼

【H27U4G8F2E.c】 #include <stdio.h> #include <stm32f4xx.h> #include "H27U4G8F2E.h" NAND_HandleTypeDef hnand; void H27U

原创 STM32F407VE單片機使用I2C接口操作內部控制芯片爲RA8816的FYD12864-1001A型的12864液晶

【接線】 上面:GND, VCC=5V, CS=高電平, SDA=PB7, SCK=PB6, RST=PA1 下面:WR=RD=DB2=DB4=DB5=GND(可自定義), DB6=GND, D/C=高電平 其餘引腳懸空! DB3必須