main.c
#include "stm32f4xx.h"
#include "./led/bsp_led.h"
/* 相關(guān)宏定義,使用存儲器到存儲器模式必須使用DMA2 */
#define DMA_STREAM DMA2_Stream0
#define DMA_CHANNEL DMA_Channel_0
#define DMA_STREAM_CLOCK RCC_AHB1Periph_DMA2
#define DMA_FLAG_TCIF DMA_FLAG_TCIF0
#define BUFFER_SIZE 32
#define TIMEOUT_MAX 10000 /* Maximum timeout value */
/* 定義aSRC_Const_Buffer數(shù)組作為DMA數(shù)據(jù)源,
const關(guān)鍵字將aSRC_Const_Buffer數(shù)組變量定義為常量類型 */
const uint32_t aSRC_Const_Buffer[BUFFER_SIZE]= {
0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,
0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,
0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,
0x31323334,0x35363738,0x393A3B3C,0x3D3E3F40,
0x41424344,0x45464748,0x494A4B4C,0x4D4E4F50,
0x51525354,0x55565758,0x595A5B5C,0x5D5E5F60,
0x61626364,0x65666768,0x696A6B6C,0x6D6E6F70,
0x71727374,0x75767778,0x797A7B7C,0x7D7E7F80};
/* 定義DMA傳輸目標(biāo)存儲器 */
uint32_t aDST_Buffer[BUFFER_SIZE];
static void Delay(__IO uint32_t nCount);
static void DMA_Config(void);
uint8_t Buffercmp(const uint32_t* pBuffer, uint32_t* pBuffer1, uint16_t BufferLength); //比較函數(shù)定義
int main(void)
{
/* 定義存放比較結(jié)果變量 */
uint8_t TransferStatus;
LED_GPIO_Config();
LED_PURPLE;
Delay(0xFFFFFF);
/* DMA傳輸配置 */
DMA_Config();
/* 等待DMA傳輸完成 */
while(DMA_GetFlagStatus(DMA_STREAM,DMA_FLAG_TCIF)==DISABLE)
{
}
TransferStatus=Buffercmp(aSRC_Const_Buffer, aDST_Buffer, BUFFER_SIZE);
if(TransferStatus==0)
{
LED_RED;
}
else
{
LED_BLUE;
}
while (1)
{
}
}
static void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
/**
* DMA傳輸配置
*/
static void DMA_Config(void)
{
DMA_InitTypeDef DMA_InitStructure;
__IO uint32_t Timeout = TIMEOUT_MAX;
/* 使能DMA時(shí)鐘 */
RCC_AHB1PeriphClockCmd(DMA_STREAM_CLOCK, ENABLE);
/* 復(fù)位初始化DMA數(shù)據(jù)流 */
DMA_DeInit(DMA_STREAM);
/* 確保DMA數(shù)據(jù)流復(fù)位完成 */
while (DMA_GetCmdStatus(DMA_STREAM) != DISABLE)
{
}
/* DMA數(shù)據(jù)流通道選擇 */
DMA_InitStructure.DMA_Channel = DMA_CHANNEL;
/* 源數(shù)據(jù)地址 */
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)aSRC_Const_Buffer;
/* 目標(biāo)地址 */
DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)aDST_Buffer;
/* 存儲器到存儲器模式 */
DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToMemory;
/* 數(shù)據(jù)大小 */
DMA_InitStructure.DMA_BufferSize = (uint32_t)BUFFER_SIZE;
/* 自動(dòng)遞增功能使能 */
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;
/* 自動(dòng)遞增功能使能 */
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
/* 源數(shù)據(jù)大小為字(32位) */
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
/* 目標(biāo)數(shù)據(jù)大小為字(32位) */
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
/* 普通傳輸模式(一次傳輸),存儲器到存儲器模式不能使用循環(huán)模式 */
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
/* DMA數(shù)據(jù)流優(yōu)先級為高 */
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
/* 禁用FIFO模式 */
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
/* 單次模式 */
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
/* 單次模式 */
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
/* 使用上面設(shè)置配置DMA參數(shù) */
DMA_Init(DMA_STREAM, &DMA_InitStructure);
/* 清除DMA數(shù)據(jù)流傳輸完成標(biāo)志位 */
DMA_ClearFlag(DMA_STREAM,DMA_FLAG_TCIF);
/* 使能DMA數(shù)據(jù)流,開始DMA數(shù)據(jù)傳輸 */
DMA_Cmd(DMA_STREAM, ENABLE);
/* 檢測DMA數(shù)據(jù)流是否有效并帶有超時(shí)檢測功能 */
Timeout = TIMEOUT_MAX;
while ((DMA_GetCmdStatus(DMA_STREAM) != ENABLE) && (Timeout-- > 0))
{
}
/* 判斷是否超時(shí) */
if (Timeout == 0)
{
/* 超時(shí)執(zhí)行循環(huán) */
while (1)
{
LED_RED;
Delay(0xFFFFFF);
LED_RGBOFF;
Delay(0xFFFFFF);
}
}
}
/**
* 判斷指定長度的兩個(gè)數(shù)據(jù)源是否完全相等,
* 相等返回1,不等返回0
*/
uint8_t Buffercmp(const uint32_t* pBuffer,
uint32_t* pBuffer1, uint16_t BufferLength)
{
while(BufferLength--)
{
if(*pBuffer != *pBuffer1)
{
return 0;
}
pBuffer++;
pBuffer1++;
}
return 1;
}
/*********************************************END OF FILE**********************/
上一篇:嵌入式stm32學(xué)習(xí):DMA-存儲到外設(shè)
下一篇:嵌入式stm32學(xué)習(xí):USART串口通信
推薦閱讀
史海拾趣
隨著全球環(huán)保意識的不斷提高,DPA Components International公司也積極響應(yīng),將環(huán)保理念融入到產(chǎn)品設(shè)計(jì)和生產(chǎn)過程中。公司采用環(huán)保材料和節(jié)能技術(shù),減少生產(chǎn)過程中的污染和能耗。同時(shí),DPA還推出了一系列綠色電子產(chǎn)品,這些產(chǎn)品不僅性能卓越,而且符合環(huán)保標(biāo)準(zhǔn),受到了廣大消費(fèi)者的青睞。通過實(shí)踐環(huán)保理念,DPA不僅提升了企業(yè)形象,也為行業(yè)的可持續(xù)發(fā)展做出了貢獻(xiàn)。
在成功立足國內(nèi)市場后,DPA Components International公司開始積極拓展國際市場。公司深入了解不同國家和地區(qū)的市場需求,針對性地調(diào)整產(chǎn)品策略和服務(wù)模式。通過參加國際展會(huì)、建立海外銷售網(wǎng)絡(luò)以及與國外企業(yè)合作,DPA逐漸打開了國際市場的大門。在國際市場上,DPA憑借其卓越的產(chǎn)品質(zhì)量和專業(yè)的技術(shù)服務(wù),贏得了眾多客戶的信任和支持,進(jìn)一步提升了公司的品牌影響力和市場份額。
隨著電子行業(yè)的快速發(fā)展,德立電子意識到技術(shù)創(chuàng)新的重要性。公司加大研發(fā)投入,不斷推出高頻貼片繞線電感、立式電感、磁環(huán)電感等新產(chǎn)品,滿足市場多樣化需求。同時(shí),德立電子還注重知識產(chǎn)權(quán)保護(hù),申請多項(xiàng)專利,確保技術(shù)領(lǐng)先。
在激烈的市場競爭中, Friedrich Lütze GmbH 深知品牌建設(shè)的重要性。公司不斷加大品牌宣傳力度,通過參加國內(nèi)外知名展會(huì)、舉辦技術(shù)研討會(huì)等方式,提升品牌知名度和影響力。同時(shí),公司注重客戶服務(wù)體驗(yàn),建立了完善的售后服務(wù)體系,為客戶提供及時(shí)、專業(yè)的技術(shù)支持和解決方案。這些舉措有效提升了公司在市場上的競爭力和客戶滿意度。
作為一家有社會(huì)責(zé)任感的企業(yè),義隆電子一直關(guān)注可持續(xù)發(fā)展問題。公司積極推廣綠色生產(chǎn)理念,采取環(huán)保措施減少生產(chǎn)過程中的污染排放。同時(shí),義隆電子還關(guān)注社會(huì)公益事業(yè),積極參與各種慈善活動(dòng),回饋社會(huì)。這些舉措不僅提升了公司的品牌形象,也為公司的長期發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
請注意,以上故事框架僅供參考,具體的故事內(nèi)容需要根據(jù)義隆電子的實(shí)際情況進(jìn)行撰寫。
集成運(yùn)放的固有噪聲到底有多大呢? 雖然用的是精密放大器op07 但信號源確是微伏級的 會(huì)不會(huì)淹沒在噪聲中?。? 哪位大俠解答一下 怎么測運(yùn)放的固有噪聲呢?… 查看全部問答∨ |
|
WinCE 6.0 在調(diào)試DLL中的函數(shù)時(shí)傳入的char*類型的參數(shù),看到的值是空的,但函數(shù)的執(zhí)行結(jié)果卻是正確的 dll 頭文件 Function.h class _declspec(dllexport)CFunction : public CObject { public: CFunction(); virtual ~CFunction(); int Add(i ...… 查看全部問答∨ |
|
MDK&STM32系列ARMCortex-M3視頻培訓(xùn)教程 為了滿足部分初學(xué)者的需求,我們制作了一份STM32培訓(xùn)視頻,供大家下載。結(jié)合兩本書,還有低成本的工具,我想對于初學(xué)者來說應(yīng)該會(huì)一定的幫助。目前提供的資料:《STM32系列ARM Cortex-M3微制器原理與應(yīng)用》《ARM開發(fā)工具RealView MD ...… 查看全部問答∨ |
|
最近想做點(diǎn)東西,由于模塊有點(diǎn)多,所以想用總線通信。但在IIC和CAN總線的選取上,由于自身對兩種總線了解不夠深,在此希望各位高手能指點(diǎn)一下。634796840是我QQ,可以留言也可以QQ聯(lián)系,謝謝啦!… 查看全部問答∨ |
void I2C_Standby_24C(void) //判斷EEPrOM忙否,通過讀取SR1的的二位BUSY的值 { vu16 SR1_Tmp; do { /*起始位*/ I2C_GenerateSTART( ...… 查看全部問答∨ |
2013年全國大學(xué)生電子設(shè)計(jì)競賽 本帖最后由 paulhyde 于 2014-9-15 03:06 編輯 2013年全國大學(xué)生電子設(shè)計(jì)競賽 全國一等獎(jiǎng)候選隊(duì)及抽測的復(fù)評測試隊(duì)員名單(C題) … 查看全部問答∨ |
關(guān)于IAR variable "Fx" was set but never 我用的是iar for msp430v5.5.02這個(gè)版本#include #include \"Config.h\" void main(void) { int Fx,F; int k3=18,k2=-40,k ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- 480Wh/kg!湖南久森半固態(tài)金屬鋰負(fù)極電池即將量產(chǎn)
- 中國首條硫化物固體電解質(zhì)量產(chǎn)線正式落地
- QUT開發(fā)出新的LENS系統(tǒng) 可以讓機(jī)器人進(jìn)行類似大腦的導(dǎo)航
- 毫米波雷達(dá)裝機(jī)量分析:毫米波雷達(dá)裝車量持續(xù)攀升,大陸和博世占據(jù)60%以上市場份額
- TDK推出適用于車載濾波器的同軸電纜供電電感器
- 大摩給“人形機(jī)器人100”清單注入新思路
- 行家預(yù)判:2025年車載Mini LED反超OLED
- 2025數(shù)智未來峰會(huì):深度解讀AI賦能工業(yè)的趨勢與實(shí)踐
- 工業(yè)自動(dòng)化中的Raspberry Pi:簡化經(jīng)濟(jì)實(shí)惠的邊緣計(jì)算
- 意法半導(dǎo)體宣布擴(kuò)大在新加坡的“Lab-in-Fab”廠內(nèi)實(shí)驗(yàn)室合作項(xiàng)目
- 半導(dǎo)體品牌知名度問卷調(diào)查
- 上演你的“ADI實(shí)驗(yàn)室電路”DIY!
- 下載有禮|是德科技電子書 《通過了解測試精度的基礎(chǔ)知識, 提高良率并降低風(fēng)險(xiǎn)》,不做“差不多先生”
- 下載《Altera SoC深度體驗(yàn)》,打分評論贏好禮
- 【已結(jié)束】 Qorvo、村田、NI直播【UWB最新技術(shù)、方案、市場、應(yīng)用解析】(13:30開始入場)
- TI 最新CapTIvate™ 觸控微控制器技術(shù)直播開始報(bào)名嘍!報(bào)名參與有禮呦!
- 老T叔的藏書閣——一位老工程師多年的資料積累
- 有獎(jiǎng)直播【Keysight World Tech Day 2023分論壇——汽車自動(dòng)駕駛與新能源】
- #最能打國產(chǎn)芯#能打入汽車電子這片地的國產(chǎn)芯,有多少啦?
- 新年新挑戰(zhàn):ST藍(lán)牙開發(fā)板免費(fèi)申請?jiān)u測+挑戰(zhàn)賽(littleshrimp帶隊(duì))
- 為阻止反壟斷裁決執(zhí)行,高通計(jì)劃公布蘋果內(nèi)部文件
- 建設(shè)智慧城市有哪些個(gè)問題?該如何解決?
- 藍(lán)牙設(shè)備出貨量有望再創(chuàng)新高,各大公司動(dòng)作不斷
- 普京:美國打壓華為,因?yàn)檎龑⒅袊暈槿蚋偁幷?/a>
- 半導(dǎo)體測試設(shè)備研發(fā)持續(xù)進(jìn)行,未來之路將如何發(fā)展?
- KA—B7的飛行機(jī)器人,外形宛如一架球形無人駕駛直升機(jī)
- 亞馬遜工人的安全背心讓機(jī)器人知道何時(shí)放慢速度
- 無人直升機(jī)在農(nóng)業(yè)上的獨(dú)特技術(shù)優(yōu)勢
- 全球機(jī)器人激光切割市場在未來5年將持續(xù)增長
- 機(jī)器人的未來該如何發(fā)展