原创 嵌入式按鍵驅動,支持短按、長按、雙擊(輪詢方式)

目錄: 1:概述 2:代碼功能 3:代碼分享 概述: 代碼利用輪詢方式對按鍵狀態進行掃描,掃描得出按鍵的鍵值(短按、長按、雙擊),然後根據鍵值進行相應的事件處理; 平臺:奮鬥STM32F103 V5開發板  開發環境:KEIL MDK5

原创 嵌入式按鍵驅動,支持短按、長按、雙擊(中斷方式)

 目錄: 1:概述 2:stm32外部中斷配置 3:code 概述: 1:本篇利用按鍵中斷輸入方式,當按鍵觸發,中斷處理函數置按鍵掃描標誌位爲1,開始按鍵鍵值掃描,完成後,主程序根據鍵值(短按、長按、雙擊),完成相應的動作; 2:當K1

原创 STM32串口環形緩衝區

目錄 1:概述 2:代碼 1:概述 1.1:本篇實現串口驅動,實現printf函數的重定向,實現串口的中斷接受和發送,效仿modbus協議中的3.5T超時機制,判斷是否接受完畢; 1.2:如果串口僅僅是實現一個控制檯,打印一些debug

原创 FreeModbus源碼詳解

本篇按照FreeModbus協議棧的工作流程,對源代碼進行總結解析;FreeModbus協議棧作爲從機,等待主機傳送的數據,當從機接收到一幀完整的報文後,對報文進行解析,然後響應主機,發送報文給主機,實現主機和從機之間的通信; 1:dem

原创 SPI實現SST25VF016B驅動(Flash)

本文在STM32F103上實現SSH25的驅動,實現數據的寫入和讀取: 1:此驅動未加擦除時候是否擦除成功的判斷,一般寫入FLASH不成功的最大原因就是擦除不成功,所以一般特選FLASH裏面的一個地址存儲一個特徵字,比如0x12,當執行完

原创 TCP迭代服務器

概述: 本篇利用Linux下的socket編程,實現TCP客戶端和TCP迭代服務器(循環服務器); 過程描述: 1:啓動TCP服務器進程,listen客戶端connect進程,服務器阻塞等待accept客戶端connect; 2:啓動T

原创 壹:Modbus協議功能碼及格式簡述

目錄 一:Modbus寄存器種類說明 二:Modbus功能碼簡述 三:Modbus寄存器PLC地址 和 寄存器協議地址簡述 四:Modbus彙總 正文 一:Modbus寄存器種類說明 1:線圈狀態 輸出端口,可設定端口

原创 51內核UART串行總線環形緩衝區驅動實現

目錄: 1:驅動簡述; 2:代碼示例; 3:串口波形; 正文: 1:驅動簡述; 驅動實現串口中斷接收和發送數據,緩衝區使用環形緩衝區。發送:手動置RI中斷標誌位爲1,發生中斷,在中斷髮送函數中將需要發送的數據一一發送出去,具體見示例;接收

原创 使用rand函數產生僞隨機數

概述:使用c庫函數rand()和srand()函數產生僞隨機數,代碼可選擇產生整形和浮點型的隨機數,用隨機數模擬AD值,作爲後幾章濾波算法的原始採樣值。 code /***********************************

原创 ubuntu14.04 LTS安裝手冊(contiunous new)

ubuntu14.04 LTS安裝手冊 1:下載ubuntu14.04LTS鏡像,下載地址:Ubuntu 14.04 LTS. 2:下載Universal USB_Installer 1.9.5軟件. 3:使用第2步下載的軟件Un

原创 volatile限定符

目錄 一:volatile概述 二:volatile代碼示例 三:總結 正文 一 :volatile概述 1 : 編譯器優化對代碼生成的指令會產生影響,導致不可控的bug,爲了限制編譯器的優化本領,設定volatile限定修

原创 使用結構體存儲多變量類型數據

1:需要存儲的變量具有多種類型時(char/int/float),採用結構體整體寫入和讀取的思路,不需要考慮結構體對齊; 2:動態申請100個字節大小的buff,認爲buff等同於FLASH、E2P中的一段存儲; 3:將flash_1中需

原创 貳:Modbus常用功能碼協議詳解

01H-讀線圈狀態 1)描述:讀從機線圈寄存器,位操作,可讀單個或者多個; 2)發送指令: 假設從機地址位0x01,寄存器開始地址0x0023,寄存器結束抵制0x0038,總共讀取21個線圈。協議圖如下: 3)響應:

原创 STM32標準庫新建工程模板

新建自己的工程模板,便於以後做項目的時候直接拿來用,本文從ST官網下載標準庫文件,建立一個工程模板 1:從官網下載ST官方庫文件 1.1:登錄官網,中文和英文都可以,搜索框搜索"stm32 firmware",進入,如下圖: 1.2:紅

原创 時鐘滴答定時器(sysclk)用法詳解

目錄: 概述:本篇博客針對sysclk內核定時器(時鐘滴答定時器)的常見用法進行總結,分別實現sysclk的定時、延時、計時功能,全部爲代碼,寄存器描述需參考《Cortex-M3 權威指南》。 平臺:stm32f103奮鬥開發板   開發