
Cube固件庫是ST現(xiàn)在主推的固件庫,并且在它的官網(wǎng)已經(jīng)找不到原來的標(biāo)準(zhǔn)庫可供下載。Cube固件庫的構(gòu)架圖如下這種新式構(gòu)架可以有效的加快軟件工程師的工程進(jìn)度?! ⌒陆ㄒ粋€(gè)工程項(xiàng)目主要包括以下的步驟: 1、使
字符發(fā)送的過程描述:在UART的發(fā)送過程中先將數(shù)據(jù)輸入到發(fā)送數(shù)據(jù)寄存器中(TDR)此時(shí)(TXE)被硬件置1,之后TDR寄存器將數(shù)據(jù)串行移入到發(fā)送移位寄存器中,將數(shù)據(jù)在TX端口發(fā)送,此時(shí)(TC)被硬件置1。發(fā)送與接收是逆過程。
STM32-IIC 配置解說(原創(chuàng))STM32 - I2C 簡(jiǎn)介 :I2C 總線接口連接微控制器和串行 I2C 總線。它提供多主機(jī)功能,控制所有 I2C總線特定的時(shí)序、協(xié)議、仲裁和定時(shí)。支持標(biāo)準(zhǔn)和快速兩種模式,另外 STM32的 I2C 可以使用
單片機(jī)STM32的引腳有多種方式可以選擇。如果你是用直接寫寄存器來配置的話,那么,看上手冊(cè),給“配置寄存器”對(duì)應(yīng)的位寫0或者1就可以達(dá)到目的。如下圖:如果是用庫函數(shù)來配置的話,就需要知道下面這個(gè)結(jié)構(gòu)體中的變量
STM32三種啟動(dòng)模式對(duì)應(yīng)的存儲(chǔ)介質(zhì)均是芯片內(nèi)置的,它們是:1)用戶閃存 = 芯片內(nèi)置的Flash。2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。3)系統(tǒng)存儲(chǔ)器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時(shí)在這個(gè)區(qū)域預(yù)置了一段Bootl
由于我的J-LINK 壞了,新買的還沒到,就用串口工具進(jìn)行下載。信息提示框提示下載內(nèi)容不在0x08000000 與0x20000000范圍內(nèi),即不在程序FLASH或SRAM上。而讀器件信息,清除芯片就沒問題,表示我的串口下載工具沒有問題。
最近用到的溫濕度傳感器,AM2305驅(qū)動(dòng),單總線,上電后至少要延時(shí)2S才能讀取溫濕度,溫度精度很高,跟DS18B20一樣,數(shù)據(jù)帶校驗(yàn),不會(huì)出現(xiàn)DS18B20那樣,并且時(shí)序要求不高/***************************************************
串口記錄: STM32有好幾個(gè)串口。比如說STM32F103ZET6有5個(gè)串口,串口1的引腳對(duì)應(yīng)的IO為PA9,PA10.PA9,PA10默認(rèn)功能是GPIO,所以當(dāng)PA9,PA10引腳作為串口1的TX,RX引腳使用的時(shí)候,那就是端口復(fù)用。 復(fù)用端口初始化有幾
LWIP是一款開源的嵌入式網(wǎng)絡(luò)協(xié)議棧,支持的功能很多,而且能在多任務(wù)環(huán)境下和單任務(wù)裸機(jī)環(huán)境下跑,今天說說他的移植過程,芯片為STM32,網(wǎng)卡為ENC28J60,無操作系統(tǒng) 首先下載LWIP的源代碼,我下載的是1.4.1的源碼,下載后解
例程: /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /* Enable the WAKEUP_BUTTON_EXTI_IRQn Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = WAKEUP_BU
stm32 HardFault_Handler調(diào)試及問題查找方法STM32出現(xiàn)HardFault_Handler故障的原因主要有兩個(gè)方面:1、內(nèi)存溢出或者訪問越界。這個(gè)需要自己寫程序的時(shí)候規(guī)范代碼,遇到了需要慢慢排查。2、堆棧溢出。增加堆棧的大小。
1、基本的GPIO配置,注意,因?yàn)樾枰玫狡胀↖O口作為中斷輸入口,因此是用了IO口德復(fù)用功能,因此必須打開RCC_APB2Periph_AFIO時(shí)鐘,負(fù)責(zé)復(fù)用IO無效。2、IO口復(fù)用功能映射3、嵌套中斷向量配置調(diào)試發(fā)現(xiàn)這幾句話是必須
1 __set_PRIMASK(1);//關(guān)總中斷23 /************4 **********/5 __set_PRIMASK(0);//開總中斷
一、使用復(fù)用功能(AF)時(shí),要對(duì)端口位配置寄存器進(jìn)行編程。1)對(duì)于復(fù)用的輸入功能,配置必須為上拉/下拉或者浮空;2)對(duì)于復(fù)用輸出功能,配置必須為復(fù)用功能輸出模式(推挽,開漏)。對(duì)于雙向復(fù)用功能,必須配置為復(fù)
一、RCC_AHBPeriphClockCmd函數(shù)其中RCC_AHBPeriph的取值范圍:二、RCC_APB2PeriphClockCmd函數(shù)其中RCC_APB2Periph的取值范圍:GPIOx[0-15]、高級(jí)定時(shí)器TIM1,TIM8,高速SPI1,高速異步通信USART1,ADC1,ADC2
在MDK環(huán)境下,終于將3.90版本的UCGUI移植到STM32下了,在網(wǎng)上看到的都是例程代碼,很少看到有關(guān)于在STM32下移植UCGUI的教程方法,為了方便大家,特寫此移植方法,大家可以借鑒(有錯(cuò)誤之處,望大家指點(diǎn)出來共同討論!
我們經(jīng)常會(huì)使用STM32 ADC功能測(cè)試外部電壓,在一些精度不高的場(chǎng)合,我們一般就用3.3V作為參考電壓來計(jì)算測(cè)到的電壓值。不過,這種情況很少見,可能只有單片機(jī)學(xué)習(xí)板才會(huì)這樣使用。因?yàn)槲覀兪褂玫?.3V穩(wěn)壓芯片,很少有
Systick :系統(tǒng)心跳定時(shí)器,提供系統(tǒng)節(jié)拍裸機(jī)程序中可作為獨(dú)立的延時(shí)定時(shí)器用途:1.產(chǎn)生操作系統(tǒng)的時(shí)鐘節(jié)拍2.便于不同處理器之間程序移植SysTick定時(shí)器被捆綁在NVIC中,異常號(hào)153.作為一個(gè)鬧鈴測(cè)量時(shí)間用于測(cè)量時(shí)間,但當(dāng)
1.不要太相信stm32內(nèi)部的IO上下拉,必要的話,在外部接上下拉電阻。2.當(dāng)把JTAG的IO口當(dāng)成普通IO口來使用時(shí),要先禁止JTAG。即:要使用到PB3、PB4、PA13、PA14、PA15時(shí),要先禁止JTAG。在庫函數(shù)中,調(diào)用一下函數(shù):GPIO
一、wm_redraw.c移植我在上一篇筆記中講過如何將ucGUI移植到STM32上開發(fā)裸機(jī)程序。在本篇筆記中分析一下wm_redraw.c的移植及源碼。首先打開移植好的ucGUI工程文件,然后將ucGUI\\Sample\\GUI目錄下WM_Redraw.c文件中的