看了一段時(shí)間的相關(guān)資料,將自已了解的知識寫出來,以求備忘。在此文中若有錯誤之處,請指出,將不勝感激。STM32F103ZET6是Cortex-M3內(nèi)核的ARM類型的單片機(jī),它屬于STM32的大密度器件,對于STM32的存儲架構(gòu)是差不多的
一個(gè)小的項(xiàng)目,在測試時(shí)間和產(chǎn)品量稍微大一些之后,出現(xiàn)了一些莫名其妙的非邏輯錯誤的Bug(最頭疼的是不能每次都能復(fù)制出來)。經(jīng)過修改后,最近一個(gè)月的測試都沒有出現(xiàn)。本人在這里得到了原子哥和其他朋友的很多幫助
STM32支持了位帶操作(bit_band),有兩個(gè)區(qū)中實(shí)現(xiàn)了位帶。其中一個(gè)是SRAM 區(qū)的最低1MB 范圍,第二個(gè)則是片內(nèi)外設(shè) 區(qū)的最低1MB 范圍。這兩個(gè)區(qū)中的地址除了可以像普通的RAM 一樣使用外,它們還都有自己的“位帶別名區(qū)
先看一下stm32vet6的引腳圖吧電路設(shè)計(jì)以及PCB制作中,經(jīng)常碰見電源符號:VCC、 VDD、VEE、VSS,他們具有什么樣的關(guān)系那? 一、解釋 VCC:C=circuit 表示電路的意思, 即接入電路的電壓 VDD:D=device 表示器件
選擇DMA的正常模式,即DMA只傳輸一次。如果當(dāng)傳輸完一次后,還想再傳輸一次,就需要重啟DMA:DMA_Cmd(DMA1_Channel6,DISABLE);重新設(shè)置源地址重新設(shè)置目的地址重設(shè)傳輸數(shù)量DMA_Cmd(DMA1_Channel6,ENABLE);因此建議把
stm32的flash地址起始于0x08000000,結(jié)束地址是0x080000000加上芯片實(shí)際的flash大小,不同的芯片flash大小不同。RAM起始地址上0x200000000,結(jié)束地址是0x20000000加上芯片的RAM大小。STM32將外設(shè)等都映射為地址的形式
根據(jù)小苗開發(fā)板例程,修改得好用的讀寫FM24CL16的2K bytes代碼,分享給大家。小苗開發(fā)板的程序有點(diǎn)問題,I2C_Read()里最后產(chǎn)生stop條件時(shí)間不對;另外FM24CL16是11位地址的,在I2C_Write()里也應(yīng)體現(xiàn)出來。先貼代碼,
一 概述 很多人都知道stm32的硬件I2C存在BUG,現(xiàn)在我們通過軟件模擬時(shí)序的辦法來實(shí)現(xiàn)I2C。 使用軟件模擬I2C主要是方便程序的移植,只需要更改一下相應(yīng)的IO端口即可。二 軟件模擬實(shí)現(xiàn)1 起始信號voidi2c_Start(void){ma
今天在學(xué)習(xí)mpu6050的時(shí)候,發(fā)現(xiàn)程序出現(xiàn)了看門狗的程序,其實(shí)這個(gè)在學(xué)習(xí)51的時(shí)候就應(yīng)該了解的,但是我并沒有去了解。導(dǎo)致現(xiàn)在學(xué)習(xí)32,其實(shí)就是在補(bǔ)之前的51。首先,我想把文章最后一句放到開始寫出來:總結(jié)一下,就個(gè)
0 引言隨著集成電路的發(fā)展和數(shù)字信號處理技術(shù)的采用,數(shù)字示波器已成為集顯示、測量、運(yùn)算、分析、記錄等各種功能于一體的智能化測量儀器。數(shù)字示波器在性能上也逐漸超越模擬示波器,并有取而代之的趨勢。與模擬示波
實(shí)驗(yàn):控制串口一以DMA方式發(fā)送(TX)數(shù)據(jù)一、初始化DMA 對STM32任何模塊使用前都要對其初始化、首先就是初始化外設(shè)時(shí)鐘,查看時(shí)鐘數(shù)可知DMA時(shí)鐘由AHB得來。初始化時(shí)鐘:RCC->AHBENR"=1CNDTR=cndtr;//DMA1,傳輸數(shù)
本文分為兩部分,即”以USART1為例的串口初始化”和“調(diào)試中遇到的問題”以USART1為例的串口初始化本程序調(diào)用了stm32自帶的固件庫,工程中具體的文件見下圖:一.GPIO及USART1初始化結(jié)構(gòu)體變量定義GPIO_InitTypeD
C代碼//GPIOA8是LED0//GPIOA13是KEY0僅包含啟動代碼STM32F10x.s#defineGPIOA_CRL(*(volatileunsignedlong*)(0x40000000+0x10000+0x0800+0x00))#defineGPIOA_CRH(*(volatileunsignedlong*)(0x40000000+0x10000+0x0800
先來點(diǎn)題外話~網(wǎng)上說STM32F103的IIC有瑕疵!就當(dāng)是有些短板吧,個(gè)人覺得,用起來肯定沒問題,只是不好用。人家說ST公司考慮到專利問題,沒按飛利浦的標(biāo)準(zhǔn)來。導(dǎo)致STM32的IIC使用起來非常繁雜。下面就講講用STM32 IO口
入手stm32以來,一直想快速上手,所以在各大論壇閑逛,各個(gè)達(dá)人的blog上學(xué)習(xí),正所謂欲速則不達(dá),心急是吃不了熱豆腐的!有木有?最終決定使用st官網(wǎng)的庫開發(fā),據(jù)大俠們寫道使用庫可以快速上手,貌似的確如此,一個(gè)個(gè)
首先說下我使用飛、高級定時(shí)器的一些坑爹經(jīng)歷,由于開始高級定時(shí)器使用不當(dāng),造成有如下問題:1、PWM輸出占空比反向(這個(gè)也還能接受點(diǎn))2、程序燒進(jìn)去了就不能燒第二次了,下載時(shí)候提示如下圖(這個(gè)夠坑爹的了)錯誤
任務(wù)目的使用EXTI(External Interrupt)外部中斷方式, 通過中斷服務(wù)函數(shù)對GPIO口進(jìn)行控制, 使得LED燈可以進(jìn)行亮滅翻轉(zhuǎn).原理圖分析問題分析結(jié)束之后還是先來看原理圖的分析.首先是LED燈部分:由圖中可知, 若要控制紅燈
時(shí)鐘系統(tǒng)是處理器的核心,所以在學(xué)習(xí)STM32所有外設(shè)之前,認(rèn)真學(xué)習(xí)時(shí)鐘系統(tǒng)是必要的,有助于深入理解STM32。下面是從網(wǎng)上找的一個(gè)STM32時(shí)鐘框圖,比《STM32中文參考手冊》里面的是中途看起來清晰一些:重要的時(shí)鐘: PL
一、環(huán)境:公司所采用的是STM32F103RBT6芯片,本人開發(fā)是基于官方提供的V3.5.0的函數(shù)庫。二、所要實(shí)現(xiàn)的功能是:1.開發(fā)板能夠?qū)W習(xí)由遙控器發(fā)送來的紅外碼,并在串口上打印出來。2.上位機(jī)通過串口程序,發(fā)送學(xué)習(xí)來的碼
Static申明的局部變量,存儲在靜態(tài)存儲區(qū)。它在函數(shù)調(diào)用結(jié)束之后,不會被釋放。它的值會一直保留下來。所以可以說static申明的局部變量,具有記憶功能。按鍵掃描(支持連續(xù)按)的一般思路u8 KEY_Scan(void){if(KEY按