一、背景有個需求,IO口檢測上升沿,然后做相應(yīng)的動作。在此記錄STM32F103的外部中斷結(jié)構(gòu)及配置方法,以備下次快速上手使用。有許多不太明白,又是老司機(:-D)幫忙,真的是站在別人的肩膀上會讓你看的更遠,走的更
使用的芯片是stm32f103c8t6.今天在調(diào)試板子時發(fā)現(xiàn)在PA15口上的LED燈無論輸出高還是低都只有一個中間電平2.3V,后來百度說這個口(PA15--JTDI)默認用作JTAG調(diào)試口,需要配置下成普通IO口,于是按照那人的辦法寫了2句:
/**************************************************************************函數(shù)功能:把TIM2初始化為編碼器接口模式入口參數(shù):無返回 值:無****************************************************************
看邏輯地址是否統(tǒng)一編址。FLASH,RAM在同一個邏輯地址空間的,都是直接用用const,如arm,stm8,msp430等。FLASH,RAM邏輯地址空間分開的,要用其它辦法,通常是特殊關(guān)鍵字,__flash,__code等。如AVR,8051等。注:cons
Mini STM32的初學習者來說為什么用到PB3和PB4時無法控制輸出呢?首先,STM32F10x系列的MCU復位后,PA13/14/15 & PB3/4默認配置為JTAG功能。有時我們?yōu)榱顺浞掷肕CU I/O口的資源,會把這些端口設(shè)置為普通I/O口。具體
1、STM32F103 通過配置寄存器來控制I/O口1.1、GPIO的概述1.2、端口位配置表1.3、GPIO各寄存器的配置2、程序例舉:2.1、配置寄存器,使GPIOA.0、GPIOA.1置位:/*Includes-------------------------------------------
STM32的GPIO可以作為中斷輸入使用,這樣增強了實時檢測性,可以用于外部按鍵或是觸控等使用。如果使用,其實不難,這里使用標準的固件庫,加入外部中斷的庫文件:在stm32f10x_conf.h 中,打開#include "stm32f10x_ex
串口通信,首先進行串口的設(shè)置:串口設(shè)置的一般步驟可以總結(jié)為如下幾個步驟:1) 串口時鐘使能, GPIO 時鐘使能2) 串口復位3) GPIO 端口模式設(shè)置4) 串口參數(shù)初始化5) 開啟中斷并且初始化 NVIC(如果需要開啟中斷才需要
DMA是一種不使用CPU而將數(shù)據(jù)從一片地址空間復制到另一片地址空間的總線,這樣就減少了CPU的負擔,使其能夠更加專注于數(shù)據(jù)運算。為了能夠減少CPU的負擔,DMA應(yīng)該采取中斷方式而非查詢模式。但是非常不幸的是,STM32F1
//看門狗使用需要計算超時時間// IAR 7.1#ifndef __STM32_WDG_H__#include "stm32f10x.h"#define LSI_FREQ 40000void stm32_wdg_init(void);void stm32_wdg_enable(void);void stm32_wdg_feed(void);#endif#include
我在之前的一篇博客日志中,寫過關(guān)于CAN發(fā)送功能如何使用,但是當時由于時間匆忙,趕項目,按照對USART中斷發(fā)送的理解,在數(shù)據(jù)成功發(fā)送出去的情況下,寫了那篇誤人子弟的日志,在這里向大家道歉,實在不好意思,現(xiàn)在
首先是外部中斷基本的概念:STM32 的每個 IO 都可以作為外部中斷的中斷輸入口,這點也是 STM32 的強大之處。 STM32F103 的中斷控制器支持 19 個外部中斷/事件請求。每個中斷設(shè)有狀態(tài)位,每個中斷/事件都有獨立的觸發(fā)
在使用stm32f103系列單片機的時候總是會碰到RTC計時的問題,103系列單片機的RTC使用的是秒計時在經(jīng)過一段時間的研究,終于發(fā)現(xiàn)了一種比較簡單而且易于理解的使用方法,就是結(jié)合系統(tǒng)文件time.h的使用首先要添加頭文件
最近項目使用STM32,又重新熟悉了一下STM32的工程建立與程序設(shè)計,總結(jié)了一下,發(fā)現(xiàn)了之前沒有發(fā)現(xiàn)的技巧與設(shè)置。關(guān)于STM32F103 的V3.5.0固件庫,使用起來,挺方便,移植性也不錯,當然,如果使用Keil uVesion4開始的
一、背景: 需要使用STM32的DAC,例程代碼中用了DMA,對DMA之前沒有實際操作過,也很早就想知道DMA到底是什么,因此,看了一下午手冊,代碼和網(wǎng)上的資料,便有了此篇文章,做個記錄。二、正文: DMA(Direct Memor
STM32擁有1~3個ADC(STM32F101/102系列只有1個ADC),這些ADC可以獨立使用,也可以使用雙重模式(提高采樣率)。STM32的ADC是12位逐次逼近型的模擬數(shù)字轉(zhuǎn)換器。它有18個通道,可測量16個外部和2個內(nèi)部信號源。各通道
// IAR 7.1 定時器中斷時間依賴系統(tǒng)外部時鐘#include "stm32_timer.h"uint8_t tick = 0;void stm32_timer_init(void){ uint16_t PrescalerValue = 0; NVIC_InitTypeDef NVIC_InitStructure; TIM_TimeBaseInitTyp
背景只要使用單片機,按鍵檢測基本上是一定要實現(xiàn)的功能。按鍵檢測要好用,最重要的是實時和去抖。初學者往往會在主循環(huán)調(diào)用按鍵檢測程序(實時)并利用延時去抖(準確)。這種
本文設(shè)計了一種可工作在433.00-434.79MHz,中心頻率為433.00MHz,輸出功率可調(diào)的無線數(shù)傳模塊。模塊采用STM32F103RB單片機和射頻芯片CC1101設(shè)計,利用EDA軟件ADS2008仿真優(yōu)化了射頻電路的輸出匹配網(wǎng)絡(luò)。最后對無線模塊輸出功率,通信距離等參數(shù)進行了測試和驗證。
配置stm32f103使其完成PWM輸出的過程中,在配置GPIO口的時候,按照習慣配置GPIO口的speed為50MHZ,突然就意識到,為什么大部分例程習慣配置為50MHZ,而不是其它值,即有了此文章。