原创 網上發現的一個stm32的I2C比較通俗易懂的入門例程。

買了個核心板,算是有自己的STM32板子了,所以順便也整一整I2C(因爲上面的是24C02,嘻嘻,比較親切),剛開始的時候,按照參考書上面的例程寫了

原创 親測雞湯!!stm32用於進入停止模式的中斷和用於產生喚醒的中斷,後者的搶佔優先級一定要高,否則無法喚醒!

之前做實驗時,實驗時遇到了一個很嚴重的問題,就是停止模式無法喚醒。 實驗內容主要是:用一個外部中斷的響應,使得程序進入停機模式。然後再通過其他一個外部中斷或者鬧鐘中斷將單片機喚醒。但是調試了很久 用於進入停止模式的中斷和用於產生喚醒的中斷

原创 對一個8位(一字節)數的倒序處理

前段時間不小心把8位的並行數據口剛好倒序反接了,爲了不改硬件下,在程序裏將得到的一字節數的8位2機制進行倒序處理,處理後一字節返回。經過對代碼的不斷簡練,下面附上倒序處理的算法。個人覺得有時比較有用,網友們有其它更好算法也可以給以借鑑!

原创 親測實驗,RTC使用內部低速時鐘LSI時,對RTC的配置過程

下面是一開始寫程序時,配置過程: char RTCInit() {char count = 0; StartTime.year = 16;StartTime.month = 3; StartTime.day = 5;StartTime.h

原创 經緯度計算兩地距離

目前能提供經緯度距離的算法有很多,以下方法是將地球看爲橢圓進行處理計算。具體算法過程不詳解(感興趣的可以網上搜索具體計算過程),這裏只列出代碼實現部分,代碼可以直接植入單片機中,進行計算。 注:由於地球是不規則的橢球體,並且實際

原创 親測實驗,stm32待機模式和停機模式喚醒程序的區別,以及喚醒後程序入口。

這兩天研究了STM32的低功耗知識,低功耗裏主要研究的是STM32的待機模式和停機模式。讓單片機進入的待機模式和停機模式比較容易,實驗中通過設置中斷口PA1來響應待機和停機模式。 void EXTI1_IRQHandler(void) {

原创 GSM/GPRS模塊通過NTP服務器(世界授時服務器)來獲取UTC時間,並時間存於RTC中。

以SIM900A 的GSM/GPRS模塊爲例。從模塊的AT指令手冊可以看到有獲取UTC(世界時間)的指令:AT+CLTS。當用該指令去獲取時間時,從調試助手看到模塊只返回OK,之後再無響應。後來在網上查到網友說該模塊受到當地運營商權限限制

原创 做EEPROM的測試中發現一些奇怪問題。器件讀寫地址不唯一。

在做EEPROM的AT24Cxx實驗中發現對芯片讀寫地址的不唯一問題。測試主要針對AT24C02和AT24C1024兩款芯片進行測試,採用的是官方固件庫的硬件I2C編程。 問題描述: 做過AT24Cxx的都知道,在AT24Cxx寫數據時候

原创 一種針對超聲波測距的濾波處理算法

之前的項目中,使用了超聲波測距傳感器,大多數人都知道超聲波測距在程序中主要是通過測量出超聲波往返時間,而已知超聲波的速度大約340m/s。就可通過公式s =( v*t)/2。計算出離物體之間的距離。 開始時,對距離處理算法只是進

原创 一次GPRS調試引出的大發現--STM32發送字符串第一個字符丟失

這幾天一直再做gprs的調試工作,開始從網上得到的例程,在單片機上給GPRS發指令,單片機可以收到模塊返回的指令。講這次經歷之前,先簡單介紹下單片機如何給GPRS發AT指令的,AT指令有很多,在每發一個AT指令後都需要單片機給模塊再發送一

原创 物理地址,虛擬地址,鏈接地址的個人理解

以下僅爲個人理解,若有不足之處,望指正。 鏈接地址,物理地址,虛擬地址這三者地址都有各自的區別,這也是我開發學習過程中,自己琢磨出來領悟的,網上搜索的都講的很專業化,不太好理解,理解起來感覺有些吃力。所以我想以個人理解的角度,通俗點去講講

原创 DMA多知識學習應用實例

DMA多知識學習應用實例 閒來無事,學習了下DMA的相關知識和使用。平時看到的DMA都是簡單的存儲器到寄存器或者寄存器到存儲器這樣單類的傳輸。學習完DMA後,我想寫個比較綜合點的DMA學習實例,不僅能增加自己對DMA的深入應用,也同時發表

原创 基於STM32的CAN總線通信學習筆記

基於STM32的CAN總線通信學習筆記 本文主要簡單介紹CAN總線的相關概念,以及通信協議等知識,和使用STM32自帶的bxCAN外設進行CAN總線編程實驗,以及編程心得。 1. CAN總線簡要介紹 概念:CAN是控制器局域網絡(Co

原创 不同局域網內進行網絡連接的建立方法

前言 在這互聯網和物聯網的時代,網絡連接與通信被使用的越來越多,如何建立兩個網絡IP地址的連接 (TCP或者UDP連接),也是一門學問。之前項目中遇到了這方面的問題,也被糾纏了一番,查閱大量資料,通過不斷摸索和學習,對網絡通信有了一定的理

原创 memcpy與strcpy區別

memcpy與strcpy都是拷貝某段數據的函數庫,是C語言自帶標準函數庫,位於:”string.h”頭文件中,在一些字符串處理有很大幫助。很多人可能對一個數組的值賦給另一個數組時,估計都會採用一個for循環,對每個數組元素依次賦值。但如