1. 程式人生 > >在STM32上移植FreeModbus RTU的一點經驗總結

在STM32上移植FreeModbus RTU的一點經驗總結

    廢話少說,首先去下載原始碼,我下載的是freemodbus-v1.5.0,解壓後如圖所示:
 
在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 ---------------------------------*/ staticvoidprvvUARTTxReadyISR( void); static
voidprvvUARTRxISR( void); /* ----------------------- Start implementation -----------------------------*/ void

相關推薦

STM32移植FreeModbus RTU一點經驗總結

    廢話少說,首先去下載原始碼,我下載的是freemodbus-v1.5.0,解壓後如圖所示:   在demo資料夾中有很多移植好的例子,但是沒有STM32的,不要緊,我們參考已有的例子來操作就可以了。在demo資料夾下新建一個資料夾,命名為STM32,將BARE資料夾裡的檔案全部複製過來。    

封裝RabbitMQ.NET Library 的一點經驗總結

這篇文章內容會很短,主要是想給大家分享下我最近在做一個簡單的rabbitmq客戶端類庫的封裝的經驗總結,說是簡單其實一點都不簡單。為了節省時間我主要按照Library的執行順序來介紹,在你看來這裡僅僅是一個簡單的經驗總結,但是在我看來這些經驗只有在你真正的封裝rabbitmq客戶端庫的時候且將你的客戶端安全穩

Freemodbus RTUstm32移植分析

        可以這樣描述以上狀態轉換狀態,上電啟動或復位進入STATE_RX_INIT狀態,為了防止協議棧在初始化過程中就收到串列埠資料,要放棄這個無效的資料,要先等待一個T35時間,過了這個時間才進入STATE_RX_IDLE狀態,開始接收資料。實際上只要注意系統啟動順序,這個問題還是可以避免的。進入S

經驗總結---編譯出可以在Android執行的可執行檔案

作為一手包攬Ubuntu和Android裝置的初級開發者,我不止一次地嘗試把這兩個同是用Linux核心的作業系統統一起來——讓Ubuntu下的可執行程式能夠在Android裝置上執行。於是我不止一次地嘗試,不止一次地查詢資料,終於如願以償。 我把我的經驗在這裡與大家分享。 準備工具 【宿

(2018/4/7更新資源連結)Ubuntu14.04配置caffe經驗總結(含GPU)

-----------------2016/10/27更新-----------------------------參考連結,感謝原作者!http://blog.csdn.net/enjoyyl/article/details/47397505http://blog.sina

基於Metronic的Bootstrap開發框架經驗總結(5)--Bootstrap檔案傳外掛File Input的使用

Bootstrap檔案上傳外掛File Input是一個不錯的檔案上傳控制元件,但是搜尋使用到的案例不多,使用的時候,也是一步一個腳印一樣摸著石頭過河,這個控制元件在介面呈現上,叫我之前使用過的Uploadify 好看一些,功能也強大些,本文主要基於我自己的框架程式碼案例,介紹其中檔案上傳外掛File Inp

基於MVC4+EasyUI的Web開發框架經驗總結(10)--在Web介面實現資料的匯入和匯出

資料的匯入匯出,在很多系統裡面都比較常見,這個匯入匯出的操作,在Winform裡面比較容易實現,我曾經在之前的一篇文章《Winform開發框架之通用資料匯入匯出操作》介紹了在Winform裡面的通用匯入匯出模組的設計和開發過程,但在Web上我們應該如何實現呢?本文主要介紹利用MVC4+EasyUI的特點,並結

網路通訊之UIP在STM32移植

1、什麼是UIP協議棧: UIP是一種適用於小型嵌入式通訊的TCP/IP協議棧,由瑞典電腦科學院的人開發編寫的,它去掉了完整的TCP/IP中不常用的功能,簡化了通訊過程,但其保留了網路通訊中必須使用的協議,把設計重點放在IP、TCP和ARP協議的實現上。簡單易用、佔用資源少是它的設計特點。 2、協議棧介面

ucos-II移植stm32關於systick部分的修改

  systick初始化一般放在建立第一個任務裡,具體說是在OSInit(); 之後的第一個任務開始處,在早期版本的庫檔案中包含stm32f10x_systick.c和stm32f10x_systick.h兩個檔案, 因此我們只要在第一個任務開始處,呼叫下面這個函式即可。S

經驗總結-完整介紹Android Studio中Git的使用之Android Studio傳專案至GitHub(三)

現在我們開始吧,說明一下,下面的內容中,都是Git部落格系列的,雖然專案名和和之前不同,但它們都是銜接關係,如果你沒有銜接好,請建立一個專案自行完成銜接。 一、首先再次確定你自己的專案建立了Git

嵌入式Http伺服器BOA移植經驗總結(…

經過2 天的時間,終於將BOA 伺服器移植到了我的DM365 的IPCam 上了!現將個人經驗於大家一起分享! 環境: 主機:ubuntu9.10 交叉編譯工具:arm_v5t_le 目標板:TI 公司的DM365 詳細過程如下: 1. 下載Boa 原始碼 下載地址: http://www.boa.

經驗總結-完整介紹Android Studio中Git的使用之在GitHub建立一個遠端倉庫(二)

說完本地Git倉庫,那麼如何將專案上傳至遠端的GitHub倉庫呢?首先我們需要有一個託管平臺,然後需要建立一個倉庫。現在我們開始註冊一個GitHub賬號,然後去後new 一個倉庫吧: 一、首先我們需

在JZ2440板關於一直Boa伺服器的一點心得總結

            作為一個初入嵌入式學習不久的菜鳥,在這裡寫部落格還是挺害羞的。應一起學習的夥伴的要求,同時也想通過某種方式來記錄自己學習過程的點滴,給自己一個督促,給自己一個未來。      

java_web項目開發經驗總結(一)

從數據 簡單 處理 開發 事務 傳輸 記錄 承載 基礎上   web項目就像一個動態的記事本,功能很強大,你最初的項目功能調研越給力,項目所能發揮的作用也就越給力。這是因為web網絡的強聯系性,大家都可以通過訪問到自己想要訪問的頁面,頁面裏既可以承載信息,也可以承載做事情的

html網頁設計細節總結及實踐經驗總結

text 文件路徑 -1 div 提醒 進制的轉換 改換 slice 對話 1) <link rel=” ” type=”text/css” href=”__.css”>是空元素,僅包含屬性。用來定義文檔與外部資源的關系,常用於鏈接樣式表

Python之文件操作:經驗總結

pen bpm files 編碼 判斷目錄 exists 判斷 pri 功能 1、怎麽判斷讀出來的文件是gbk還是utf-8編碼 if content == u‘中國‘.encode(‘gbk‘): return ‘gbk‘ elif content == u‘中國

多年iOS開發經驗總結

pla tostring 技術 draw zed 權限 provide cst gre 1、禁止手機睡眠 [UIApplication sharedApplication].idleTimerDisabled = YES; 2、隱藏某行cell - (CG

實體拼錯名字,一點經驗教訓

3.0 map lips 和數 ips 常熟 pro left join 個人 這次的項目中出了一個問題,問題不大,可是挺坑的… V 3.0的時候我們使用Hibernate完畢實體和數據庫的映射,當時有人把

Java集合類操作優化經驗總結

設置 mar ise long 初始化 實際類型 線性表 core 不一定 在實際的項目開發中會有非常多的對象,怎樣高效、方便地管理對象,成為影響程序性能與可維護性的重要環節。Java 提供了集合框架來解決此類問題。線性表、鏈表、哈希表等是經常使用的數據結構,在

有關雙網卡同時內外網的一點想法

同時 路由表 路由 del ima 記得 以管理員身份運行 清空 比較 因為工作原因,我是要同時用內外網的,以前是只有筆記本自帶網卡,要進內外網就要不停的切換,很麻煩 最近實在忍不住了,又去某寶買了一張網卡前幾天到的貨,按網上的教程寫如下路由表 route delelte