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