原创 STM32F0單片機添加Modbus支持步驟

1、把modbus庫文件夾和port文件夾複製到工程目錄下 2、把兩個文件夾中的.c文件添加到工程中 3、把包含路徑添加進來 4、主程序main.c中包含modbus相關頭文件 #include "mb.h" #include "m

原创 不明原因的程序問題STM32 KEIL

索引變量像i,j,k這些,經常會在程序的多個部分重複使用。會不會用的次數太多了,編譯器就編譯亂掉呢? 最近寫一個程序,檢查程序沒有發現問題,但是在某一段程序中使用k,就莫名其妙的不聽使喚,k++不起作用,總是等於一個固定值6,感覺出現了編

原创 每次執行串口中斷髮送程序就跳到WAKEUP_PIN_IRQHandler

用官方的串口中斷髮送例程zhen正常,但是當我把官方的程序填到uart.h和uart.c文件中,然後添加到工程,一執行串口中斷髮送程序就跳到WAKEUP_PIN_IRQHandler。 找了好久,原來是個低級的原因。官方程序的中斷向量定義

原创 STM32F0 定時器中斷 小白掉進的坑(FreeModbus)Timeout

1)STM32F0有多個定時器,對應多個IRQn   TIM1_BRK_UP_TRG_COM_IRQn    = 13,     /*!< TIM1 Break, Update, Trigger and Commutation Inter

原创 STM32F0 在軟件程序中寫讀保護選項字節(Option Bytes)

單片機:STM32F030 庫:HAL庫 目標:在程序軟件中修改讀保護選項字節,這樣程序下載進去之後就自動保護了,不用再在ST-LINK中修改選項字節了 注意事項:寫選項字節,除了解鎖OB,還要解鎖FLASH,開始只解鎖OB,沒解鎖FLA

原创 STM32F0 HAL庫的串口中斷調用順序

首先在主函數裏執行發送中斷或者接收中斷函數: HAL_UART_Receive_IT(&UartHandle, (uint8_t *)RxBuf, 1); HAL_UART_Transmit_IT(&UartHandle, (uint8_

原创 STM32 ST-LINK Utility之坑

如果hex文件的路徑太深,用STM32 ST-LINK Utility是打不開的,他也不給你啥提示,反正就是打不開。 打不開就打不開吧,也沒事。可是如果再碰巧遇到像我下面這種情況就悲慘了。 把一個原來的程序項目複製一份,更新下程序,肯定要

原创 lwip的tftpserver.c文件,自己註釋了下

/****************************************************************//** * * @file tftp_server.c * * @author Logan

原创 調試lwip,把UDP收到的數據寫到單片機內部FLASH,程序進入hardfault_handler

用的STM32H7單片機,調試LWIP 把指針直接指向pbuf的payload,然後傳遞給FLASH編程函數,就會進入hardfault_handler 然後參考了下面這個文章 https://blog.csdn.net/tiantang

原创 LWIP協議TFTP傳輸速度如何提高

看到網上有一些關於嫌tftp速度太慢的帖子,有的說只有幾十KB的速度。 最近也在研究lwip的tftp協議。用的stm32H7單片機,主頻400MHz。剛開始是電腦通過無線連接路由,開發板通過網線連接路由。傳輸速度只有200KB。不能滿足

原创 把STM32H743I-EVAL開發板的LWIP工程移植到NUCLEO-H743ZI開發板

STM32H743I-EVAL開發板很貴,買不起。NUCLEO-H743ZI開發板便宜。但是NUCLEO-H743ZI開發板的LWIPli'c例程非常少。這兩個開發板用的都是LAN8742A PHY芯片,只是硬件連接有些不同。STM32H

原创 STM32H743程序定義大數組

 作爲小白,原來覺得這裏的配置不影響寫程序,直到最近要定義一個200K的數組,才發現這裏的配置是多麼重要。選擇IRAM1,編譯就不通過,因爲放不下,選IRAM2就能編譯通過。

原创 STM32H743的SD卡讀寫測試(SDIO)

水平不行,光入坑了。每次爬出來都精疲力竭。 把野火的SD卡測試程序,移植到字節的xi項目中,說啥也不行,直接用野火的程序就OK,移植過來就不行。 除了移植程序相關的.h.c文件外,發現一個很坑的文件,就是那個hal_conf文件。這裏除了

原创 STM32H743定時器輸出比較功能前兩個週期脈寬不準

我要通過定時器比較輸出功能髮指定個數的脈衝。但是發現隨機出現一幀的第一個脈衝寬度不對的現象,比實際需要的寬度要寬。 不知道哪裏的原因,解決辦法就是啓動定時後的前2個脈衝不用,從後面的開始用。

原创 FT1248程序(FT232H,FT220X)

百度怎麼也搜不到關於FTDI的FT1248協議的代碼,FTDI的FT1248手冊寫的又很不明不白。有幸在國外網站找到下面這個代碼,繼承原作者的初衷,在國內分享下:   FTDI: interfacing FT1248/FT220x ove