1. 如何生成stm32單片機程序
1,下面以流水燈為例說明STM32CubeMX軟體的使用。
2,
第一步,建立並保存工程。
3,啟動STM32CubeMX軟體,界面如圖2所示。
4,點擊New
Project,在New
Project對話框中選擇Board
Selector標簽頁,在這里有各種ST評估板可以選擇,我們選擇STM32F429I-DISCO,最後點擊OK,如圖3所示。這樣就建立起了STM32F429I-DISCO評估板的工程,這個工程已經根據評估板設置好了,然後可以生成相應的代碼。
5,為了演示如何使用STM32CubeMX軟體,關閉剛剛建立的工程,從頭建立一個新的工程。點擊New
Project,在New
Project對話框中選擇Mcu
Selector標簽頁,然後在MCU
Filter中依次選擇STM32F4,STM32F429/439,在下面列表中選擇STM32F429ZITx,最後點擊OK,如圖4所示。
6,新建立的工程界面如圖5所示。
2. stm32單片機優點
stm32和51根本不是一個檔次,好多程序能讓51累死
用stm32時讀SD 卡寫 FLASH動不動就 來一個512位元組的數組,多過癮
用 FATFS 文件系統 bmp圖片操作,時不時來幾個結構體,這在51上真不敢想
還有大量的浮點運算,三角函數運算,讓人覺得和台式電腦上操作沒有什麼區別
攝像頭 播放MP3 上兆 位元組的外部RAM,真是 高端大氣呀。
總之學STM32確實比51提高了很多,但現在苦於進不了操作系統,進不了嵌入式的大門
3. stm32f4屬於arm單片機嗎
stm32f4是基於Cortex-M4內核的,屬於arm單片機
4. 51/PIC/AVR/STM32單片機
精通STM32F4完整版電子書免費下載
鏈接: https://pan..com/s/1HvsswhlYzF5NbaYQmComig
《精通STM32F4(庫函數版)》由淺入深,帶領讀者學習STM32F407的各個功能。本書總共分為3篇:第一篇為硬體篇,主要介紹本書的實驗平台;第二篇為軟體篇,主要介紹STM32F4常用開發軟體的使用以及一些下載調試的技巧,並詳細介紹幾個常用的系統文件(程序);第三篇為實戰篇,通過41個實例帶領讀者一步步深入了解STM32F4。本書可配套ALIENTEK探索者STM32F4開發板學習使用,配套資料裡麵包含詳細原理圖以及所有實例的完整代碼。這些代碼都有詳細的注釋,並且所有源碼都已經經過嚴格測試,不會有任何警告和錯誤。另外,源碼有生成好的hex文件,讀者只需要通過串口/模擬器下載到開發板即可看到實驗現象,親自體驗實驗過程。
5. stm32單片機能做fc游戲么
做游戲肯定能達到FC的水準。搜搜stm32f103 fc模擬器,你就能獲得答案。也就是說運行現有FC游戲也是有可能的。
6. 在學STM32F4單片機 RTC實驗裡面有這么一句代碼 (*(u32*)temp)=data這是什麼意思
強制類型轉換。
u32 是一個自定義的數據類型。
u32*是一個指針類型。
temp 前面加(u32*)是把temp強制轉換成 指向u32類型的指針。
前面再加一個*,是訪問指針指向的地址。
temp是一個整數,這個整數實際上是一個內存地址,這句的意思是把data內容放到temp所指向的地址的內存單元中。
這實際上是一個低層訪問,除了匯編語言,就數C語言做這種低層操作比較簡單,所以,單片機大都用C語言編程。
7. 我學STM32單片機編程,SysTick->CTRL&=0Xfffffffb;這個不知怎樣讀也不明白是什麼意思請教
SysTick是一個結構體
CTRL是這個結構體內的一個成員
&=0Xfffffffb是一個數據處理。首先B=1011,&=0Xfffffffb就是把第2位的數據清零。
我做個例子:
int x;
x = 0X1F; //- x = 0001 1111
x &= 0xFb; //- x = 0001 1111 &
//- 1111 1011 (0XFB)
//- x = 0001 1011 = 0x1b
所以,結果=0X1B.
其實這樣做的目的只有一個,把第2位清0.而其它位則保持原來的狀態不變(無論原來是1還是0,&1的結果都將保持原來的數據,但&0以後則清零)。
8. 如何使用STM32F4的DSP庫
如何使用STM32F4的DSP庫
我們平常所使用的CPU為定點CPU,意思是進行整點數值運算的CPU。當遇到形如1.1+1.1的浮點數運算時,定點CPU就遇到大難題了。對於32位單片機,利用Q化處理能發揮他本身的性能,但是精度和速度仍然不會提高很多。
現在設計出了一個新的CPU,叫做FPU,這個晶元專門處理浮點數的運算,這樣處理器就將整點數和浮點數分開來處理,整點數交由定點CPU處理而浮點數交由FPU處理。我們見到過TI的DSP,還有STM32F4系列的帶有DSP功能的微控制器。前者筆者沒有用過,不作評論,而後者如果需要用到FPU的浮點運算功能,必須要進行一些必要的設置。
首先,由於浮點運算在FPU中進行,所以首先應該使能FPU運行。在system_init()中,定義__FPU_PRESENT和__FPU_USED
/*
FPU
settings------------------------------------------------------------*/
#if
(__FPU_PRESENT
==
1)&&
(__FPU_USED
==
1)
SCB->CPACR
|=
((3UL<<
10*2)|(3UL
<<
11*2));
/*set
CP10
and
CP11
Full
Access
*/
#endif
這樣就使能了FPU。
對於上述改變,當程序中出現這種簡單的加減乘除運算FPU就起作用了。但是對於復雜的如三角運算、開方運算等,我們就需要加入math.h頭文件。但是如果單純的加入他,那麼Keil會自動調用內部的math.h,該頭文件是針對ARM處理器的,專門用於定點CPU和標准演算法(IEEE-754)。對於使用了FPU的STM32F4是沒有任何作用的。所以,需要將math.h換成ST的庫,即arm_math.h。在該頭文件中,涉及到另一個文件core_cmx.h(x=0、3、4),當然了,如同STM32F1系列一樣,在工程中加入core_cm4.h即可。
到這里,算是全部設置完畢,之差最後一步,調用!但是別小看了這一步,因為如果調用的不正確,全面的設置就白費了。在使用三角函數如sin()、cos()時不要直接寫如上形式,因為他們函數的名字來自於math.h,所以你調用的仍舊是Keil庫中的標准math.h。要使用arm_math.h中的arm_sin_f32()函數(見Line.5780,原函數見DSP_Lib\Source\FastMathFunctions),可以看到他利用的是三次樣條插值法快速求值(見Line.263
/*
Cubic
interpolation
process
*/)。
注意一下例外函數,sqrt(),在arm_math.h中為arm_sqrt_f32()。使用他的時候需要同時開啟#if(__FPU_USED
==
1)
&&
defined
(
__CC_ARM
)才行,切記!還可以發現開方函數還有q15和q31之分,我想他們的區別就是精度的問題,但是他們沒有應用FPU來計算,說白了就是利用0x5f3759df這個數進行快速開方