在STM32上移植FreeModbus RTU的一點經驗總結
在demo資料夾中有很多移植好的例子,但是沒有STM32的,不要緊,我們參考已有的例子來操作就可以了。在demo資料夾下新建一個資料夾,命名為STM32,將BARE資料夾裡的檔案全部複製過來。
然後,我們建立一個STM32的工程,我用的是mdk4.72,關於怎麼建立工程我就不囉嗦了,在工程裡新增modbus 和 port兩個資料夾,並在資料夾裡新增需要的檔案,這些modbus的是在modbus資料夾下面,port的是在剛才新建的那個stm32資料夾下,port.c是我從別的地方弄過來的,裡面就是一個開中斷和一個關中斷的函式,可以不要,我的工程如圖:
乍一看,也有十幾個檔案,其實這些檔案內容不多,很好理解,而且需要修改的只有port資料夾下的portserial.c 和 porttimer.c 。這兩個檔案裡面有幾個空函式,我們看名字就知道這些函式的作用了。
portserial.c 如下:
[C] 純文字檢視 複製程式碼 ?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
#include
\"port.h\"
/*
----------------------- Modbus includes ----------------------------------*/
#include
\"mb.h\"
#include
\"mbport.h\"
/*
----------------------- static functions ---------------------------------*/
static void prvvUARTTxReadyISR(
void );
static void prvvUARTRxISR(
void );
/*
----------------------- Start implementation -----------------------------*/
void
|