
發布
注冊
/
登錄STM32的案例
想用GD32替換STM32? 這些細節一定要知道
GD32是國內開發的一款單片機,據說開發的人員是來自ST公司的,GD32也是以STM32作為模板做出來的。所以GD32和STM32有很多地方都是一樣的。
不過GD32畢竟是不同的產品,不可能所有東西都沿用STM32,有些自主開發的東西還是有區別的。
相同的地方我們就不說了,下面列一下不同的地方。
1 內核
GD32采用二代的M3內核,STM32主要采用一代M3內核,下圖是ARM公司的M3內核勘誤表,GD使用的內核只有752419這一個BUG。
2 主頻
使用HSE(高速外部時鐘):GD32的主頻最大108M,STM32的主頻最大72M
使用HSI(高速內部時鐘):GD32的主頻最大108M,STM32的主頻最大64M
主頻大意味著單片機代碼運行的速度會更快,項目中如果需要進行刷屏,開方運算,電機控制等操作,GD是一個不錯的選擇。
3 供電
外部供電:GD32外部供電范圍是2.6-3.6V,STM32外部供電范圍是2-3.6V。GD的供電范圍比STM32相對要窄一點。
內核電壓:GD32內核電壓是1.2V,STM32內核電壓是1.8V。
展開 干貨|用GD32替換STM32,這些細節你都知道嗎?
GD32是國內開發的一款單片機,據說開發的人員是來自ST公司的,GD32也是以STM32作為模板做出來的。所以GD32和STM32有很多地方都是一樣的。
不過GD32畢竟是不同的產品,不可能所有東西都沿用STM32,有些自主開發的東西還是有區別的。
相同的地方我們就不說了,下面列一下不同的地方。
內核
GD32采用二代的M3內核,STM32主要采用一代M3內核,下圖是ARM公司的M3內核勘誤表,GD使用的內核只有752419這一個BUG。
主頻
使用HSE(高速外部時鐘):GD32的主頻最大108M,STM32的主頻最大72M
使用HSI(高速內部時鐘):GD32的主頻最大108M,STM32的主頻最大64M
主頻大意味著單片機代碼運行的速度會更快,項目中如果需要進行刷屏,開方運算,電機控制等操作,GD是一個不錯的選擇。
供電
外部供電:GD32外部供電范圍是2.6-3.6V,STM32外部供電范圍是2-3.6V。GD的供電范圍比STM32相對要窄一點。
內核電壓:GD32內核電壓是1.2V,STM32內核電壓是1.8V。
展開 STM32 HAL的超全知識總結
04
STM32 HAL庫結構
說到STM32的HAL庫,就不得不提STM32CubeMX,其作為一個可視化的配置工具,對于開發者來說,確實大大節省了開發時間。STM32CubeMX就是以HAL庫為基礎的,且目前僅支持HAL庫及LL庫!首先看一下,官方給出的HAL庫的包含結構:
· 4.1 stm32f4xx.h主要包含STM32同系列芯片的不同具體型號的定義,是否使用HAL庫等的定義,接著,其會根據定義的芯片信號包含具體的芯片型號的頭文件:
#if defined(STM32F405xx)#include "stm32f405xx.h"#elif defined(STM32F415xx)#include "stm32f415xx.h"#elif defined(STM32F407xx)#include "stm32f407xx.h"#elif defined(STM32F417xx)#include "stm32f417xx.h"#else#error "Please select first the target STM32F4xx device used in your application (in stm32f2xx.h file)"#endif
緊接著,其會包含stm32f4xx_hal.h。
展開 STM32家族再添新成員,性價比高于F0系列
STM32F0系列作為意法半導體STM32產品線中銷量第大二的產品,在市面上的占有率非常高,受到了工程師們的高度評價。而市場的發展不斷鞭策著產品的進步,在STM32F0推出不到5年的時間后,意法半導體又推出了STM32F0的升級產品STM32G0系列,這將成為繼F0之后的最高性價比之選。
三大關鍵詞打造高性價比STM32G0系列MCU
在意法半導體微控制器部產品線市場經理Pierre Charvet的介紹中我們得知,STM32G0系列作為F0的升級版本,依舊采用了ARM Cortex-M0系列內核,定位于STM32主流單片機產品。
根據上圖所述,大家一定都有疑惑,STM32G0系列與STM32F0如此相像,為什么又說STM32G0是STM32F0的升級版?而這就需要我們先回顧下被大家所熟知的STM32F0系列產品。
STM32F0各大產品系列,來源:意法半導體官網
從上圖,我們可以得到這樣一些信息:STM32F0系列采用的是48MHz ARM Cortex-M0內核、Flash最高支持256k。而本次新推出的STM32G0系列則在這些方面都進行了提升,STM32G0采用了64MHz ARM Cortex-M0+內核,支持更高的CPU處理速度,同時還將閃存最大容量提升至512k。除此之外,STM32G0還提供了更多封裝方案,封裝從8引腳到100引腳可供選擇。
Pierre Charvet表示:“STM32G0系列瞄準要求尺寸更小且能效更高、功能更強、更安全和性價比更高的入門級應用。”
展開 
基于STM32的遠程廚房安全系統設計
3 結束語
本文給出了一種基于STM32的系統遠程廚房安全設計系統的結構方案,采用模塊化設計,介紹了最小系統、硬件電路和軟件流程等關鍵技術。針對目前人們對于廚房安全預警的需求,開發了通過阿里云服務器,能夠及時查看廚房環境狀態的遠程廚房安全系統,主要通過STM32F103C8T6單片機、WiFi通信模塊、傳感器模塊、蜂鳴器報警模塊等各個單元保證廚房的安全。用戶可遠程通過阿里云服務器實時查看火焰、煙霧濃度等各項指標,用技術的便利,實現對廚房是否安全的隨時查看。
參考文獻
[1] 譚千盛,基于STM32的遠程廚房安全系統設計與實現[D].西安:西安電子科技大學,2019.
[2] 薛東,彭志強.單片機技術下的智能廚房控制系統實現探討[J].科技創新與應用,2020(8):94-95.
[3] 李得至,鄧鵬,唐文濤,等.基于云平臺的智能實驗室遠程監控系統[J].機電工程技術,2021,50(3):132-134.
[4] 趙東升,劉忠富,張笑彤.基于STM32單片機的智能家庭電控系統設計[J].山西電子技術,2021(1):3-5,7.
[5] 徐文,孟文,曾麗.基于STM32與WiFi無線通信技術的遠程監控系統設計[J].自動化與儀表,2016,31(11):35-38,56.
展開 STM32中的DFSDM應用介紹
前言
STM32超低功耗系列中基于Cortex M4內核的STM32L4系列芯片內部集成了DFSDM數字濾波模塊,配合Σ-Δ器件的使用,可進行高精度、高速率的AD測量。這里就DFSDM做些基本介紹,并結合STM32L4 MCU做一個實例應用演示。
應用系統框圖
系統被分為兩部分:STM32外部的模擬前端Σ-Δ模塊和內置的數字部分DFSDM模塊。
DFSDM是STM32產品內置的一個新的數字外設,通常搭配外部的Σ-Δ器件使用。可根據相應的應用選擇外部的模擬部分,進行測量、馬達控制等應用。模擬部分提供串行數據給DFSDM,DFSDM負責對數字信號進行處理。
DFSDM數字部分集成了模擬看門狗、注入和常規轉換、靈活的觸發系統、中斷信號生成、極值檢測等。
Σ-Δ模塊
輸入模擬信號。
輸出1位或2位的快速串行數字信號,可達20MHz速率。
廣泛的廠商支持: ST, TI,Analog Devices。
DFSDM= Digital Filter for Sigma Delta Modulators
從Σ-Δ模塊接收串行數據
對接收到的Σ-Δ模塊數據進行濾波
最大24位的輸出精度
典型應用
電信號測量:電流、電壓等。
馬達控制
醫療應用
麥克風音頻
STM32 DFSDM架圖如下:
收發器
快速串行輸入(20MHz)
SPI或曼切斯特編碼模式
時鐘生成
內部并行輸入
由CPU/DMA寫入的16位寄存器數據輸入
收發器提供串行連接到外部Σ-Δ模塊,支持SPI、曼切斯特協議。收發器也支持通過CPU或DMA寫入到DFSDM數據寄存器的內部16位并行數據輸入,
濾波器
Sinc1,Sinc2,Sinc3,Sinc4,Sinc5,FastSinc內插濾波器,過采樣因子可達1024.
展開 學習STM32單片機,繞不開的串口
6)實驗現象
把程序編譯燒寫到STM32然后用串口轉USB模塊連接到電腦,在串口調試工具設置好波特率,打開串口。正常的話,那發送什么到STM32單片機,串口工具上就會收到什么。
總結
以上就完成了一個最簡單的串口實驗。
本文章主要是說明串口的重要性,用來調試程序很方便。
~END~
基于555多諧振蕩器及STM32的簡易智能阻值測量儀
圖8 顯示模塊
二、測量儀的軟件設計
上電開始時,該系統首先將STM32 初始化,接著進入鍵盤輸入子函數,等待輸入閾值;然后通過STM32 控制給555 多諧振蕩器測試電路上電開始測試,通過輸入捕獲測量測試電路的頻率,再通過軟件計算得出測量阻值(如圖9)。
圖9 軟件流程圖
2.1 STM32初始化
該系統的初始化主要為系統時鐘初始化、串口初始化和輸入捕獲初始化等。
2.1.1 系統時鐘初始化
該系統中555 多諧振蕩器的頻率較高,且需要進行多個快速測試,則需要STM32 進行快速反應,故STM32 選取外部高速時鐘源,可進行PLL 鎖相環倍頻,讓工作頻率達到72 MHz[2]。其流程圖如圖10 所示。
圖10 時鐘初始化
2.1.2 串口初始化
初始化主要是對傳輸數據速率等進行設置,需要設置相關的時鐘、引腳的輸入輸出模式和傳輸數據格式,另外還需設置中斷服務函數來讀取數據,如圖11 所示。
圖11 USART串口初始化
2.1.3 輸入捕獲初始化
當輸入捕捉到跳變電平時,將當前定時器的值存放到對應的寄存器中,完成一次對脈沖寬度的計算。因此需要開始定時器和I/O 口的時鐘,初始化定時器,配置定時器的計時頻率和計算周期;初始化輸入捕獲,定義其觸發捕獲的對象及其上升或下降沿;最后還要編寫一個中斷服務函數,用來計算脈沖寬度和開啟其他通道的輸入捕獲。
展開 以STM32為控制核心,設計心電采集電路
心電采集包括模擬采集和數字處理兩部分,本設計通過AgCl電極和三導聯線心電采集線采集人體心電信號,通過前置放大電路,帶通濾波電路,50 Hz雙T陷波后再經主放大電路和電平抬升電路把心電信號的幅度控制在STM32的A/D采集范圍內,STM32通過定時器設定A/D采樣頻率,通過均值濾波的方式對得到的數字信號進行處理。
主控模塊的STM32F103VET單片機是控制器的核心,該單片機是ST意法半導體公司生產的32位高性能、低成本和低功耗的增強型單片機,其內核采用 ARM公司最新生產的Cortex—M3架構,最高工作頻率72 MHz、512 kB的程序存儲空間、64 kB的RAM,8個定時器/計數器、兩個看門狗和一個實時時鐘RTC,片上集成通信接口有兩個I2C、3個SPI、5個USART、一個USB、一個 CAN、一個SDIO,并集成有3個ADC和一個DAc,具有100個I/O端口。主控單片機管腳排列圖如圖1所示。
圖1 STM32F103VET單片機管腳排列圖
前置放大電路是模擬信號采集的前端,也是整個電路設計的關鍵,它不僅要求從人體準確地采集到微弱的心電信號,還要將干擾信號降到最低,由于心電信號屬于差分 信號,所以電路應采用差動放大的結構,同時要求系統具有高共模抑制比、高輸入阻抗、低漂移等特點。因此,選擇合適的運算放大器至關重要,這里選擇儀用運放 AD620實現前置放大,AD620具有高精度、低噪聲、低輸入偏置電流低功耗等特點,使之適合ECG監測儀等醫療應用。
展開 STM32 60M示波器+萬用表 DIY資料全部開源
本文轉載于公眾號:電子菌
主控: STM32F103ZET6
液晶屏: 3.2"TFT320×240 65K彩色LCD顯示屏 STM32 FSMC總線驅動
AD: ADS830 IDT7204
AMP: TL082 TL084
示波器:最高實時取樣率60Msps 8Bits,
取樣緩沖器深度:5K
垂直靈敏度:5V,1V,500mV,200mV,100mV,50mV,20mV,10mV;
基準電壓使用STM32 DA輸出,實現按鍵調節波形基準
水平位置可調并有指示
輸入阻抗:≥1MΩ
最高輸入電壓:50Vpp
耦合方式:AC/DC
實現自動、常規、單次觸發方式 ,上升或下降邊沿觸發
實現計算測量輸入信號的頻率、周期、占空比、交流峰-峰值、平均值
觸發電平高低位置可調,并電壓指示
觸發時基位置可調,并帶指示
RUN/STOP功能
使用16個按鍵,真正作到單鍵操作以免去組合按鍵麻煩。
電壓表:
檔位: 200mV 2V 20V 100V
電流表:
檔位: 200mA 5A
電阻表:
檔位: 200Ω (加BB功能) 2K 20K 200K 2M
波形發生器:
檔位: 正弦波 方波(加占空比調節) 1K-100KHZ
電源使用3000mA鋰電,正常工作3小時以上
本文編輯轉載,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請在30日內與本公眾號聯系,我們將在第一時間刪除內容!
戳↓↓↓
●【技術文章】高速電路布局走線,這7點一定要記牢!
展開 GuiLite移植到STM32F4詳細步驟
按照說明移植了GuiLite到STM32F4OLED屏幕上,分析一下移植經驗。

基于STM32的多功能心電信號監測系統設計
摘要
為了檢測人體心電、運動姿態以及體溫生理信息,本文設計實現了一種基于STM32系列MCU的多功能心電信號監測系統,系統包含心電信號采集模塊、體表溫度采集模塊、運動信息測量模塊、無線數據傳輸模塊、系統控制模塊。實現對人體心電信號、體表溫度信息、走路運動信息的實時采集、計算、顯示與無線傳輸。實驗測試可得心率測量相對誤差在3%以內,體表溫度測量誤差絕對值小于0.3℃,運動步數記錄相對誤差小于1%,運動距離記錄相對誤差小于5%,實驗結果表明該設計具有較高的實用價值。
關鍵詞:心電信號,STM32,無線傳輸,運動信息
作者:馮蓉,西安工商學院信息與工程學院
楊建華、趙妤、吳桐,西安工業大學電子信息工程學院
1 系統總體方案設計
系統由STM32F103微處理器模塊、ADS1292R心電采集模塊、LMT70體表溫度傳感器模塊、ESP8266無線WiFi模塊、MMA955L加速度計模塊、系統電源、PC服務端等組成。STM32F103作為主控制器實現對人體心電信號、體表溫度信息、走路運動信息的實時采集、計算、顯示與無線傳輸。系統總體結構框圖如圖1所示。
展開 教你用STM32自制星空燈!
打開STM32CubeMX,新建一個工程,圖4。
圖4
在搜索框內,搜索我們的開發板型號,也就是STM32G070RB,圖5。這樣工程就新建好了。
圖5
配置時鐘樹,如圖6所示。
圖6
接下來配置引腳 ,這里我們采用的是PWM+DMA的方式來驅動WS2812。通過WS2812的手冊,可以得知驅動需要800KHZ的頻率。現在我們來配置定時器,這里以定時器1為例來配置。如圖7所示,圖中的Pulse是指一個周期的脈沖數;計算方法79=(64M/800K)-1得出。
圖7
下面我們開始配置DMA,如圖8所示配置。
圖8
到這里就可以生成代碼了,圖9。
【STM32】DMA基本原理、寄存器、庫函數
4
4個狀態位函數
FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG);
void DMA_ClearFlag(uint32_t DMAy_FLAG);
ITStatus DMA_GetITStatus(uint32_t DMAy_IT);
void DMA_ClearITPendingBit(uint32_t DMAy_IT);
作用:獲取DMA通道的各種狀態位,并能清除這些狀態位。
學好這些知識點,單片機不用怕!
(5)實例編寫
以上,是對庫封住過程的概述,下面我們正在地使用庫函數編寫LED程序
①管理庫的頭文件
當我們開始調用庫函數寫代碼的時候,有些庫我們不需要,在編譯的時候可以不編譯,可以通過一個總的頭文件stm32f10x_conf.h 來控制,該頭文件主要代碼如下:
//#include "stm32f10x_adc.h"
//#include "stm32f10x_bkp.h"
//#include "stm32f10x_can.h"
//#include "stm32f10x_cec.h"
//#include "stm32f10x_crc.h"
//#include "stm32f10x_dac.h"
//#include "stm32f10x_dbgmcu.h"
//#include "stm32f10x_dma.h"
//#include "stm32f10x_exti.h"
//#include "stm32f10x_flash.h"
//#include "stm32f10x_fsmc.h"
#include "stm32f10x_gpio.h"
//#include "stm32f10x_i2c.h"
//#include "stm32f10x_iwdg.h"
//#include "stm32f10x_pwr.h"
#include "stm32f10x_rcc.h"
//#include "stm32f10x_rtc.h"
//#include "stm32f10x_sdio.h"
//#include "stm32f10x_spi.h"
//#include "stm32f10x_tim.h"
//#include "stm32f10x_usart.h"
//#include "stm32f10x_wwdg.h"
//#include
展開