




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、STM32定时器触发AD采样+DMA传输问题试验环境:EWARM 4.41A + J-link + 目标板试验内容:TIM1-CC1触发ADC采样,单通道,采样结果使用DMA传输到SRAM中。问 题:下载程序提示 SRAM校验错误,拔下J-link 一端的USB 口再插上,下载 0K -停止程序, 再下载,提示错误,再拔下 J-link USB 口,再下载,0K- .如此反复。仔细看了下Debuglog,发现存放DMA传输到的目标内存数据校验错误(IAR debugger选项中的verifydownload 选上),如下:Verify error at address 0x2000007C,
2、target byte: 0x3F, byte in file: 0x01分析:可能是停止程序的时候,TIM1和ADC,DMA都没有停下来,下载的时候,DMA 一直写数据到开辟的内存中,导致那部分内存数据校验错误。以上只是个人的一些看法,不知道不否正确,有没有哪位帮分析下。*附录1:试验程序源码:/* Includes*/#include stm32f10x_lib.h/* Private typedef*/* Private define*/#define ADC1_DR_Address (u32)0x4001244C)/* Private macro*/* Private variable
3、s*/ADCnitTypeDef ADC_lnitStructure;DMA_InitTypeDef DMA_InitStructure;TIM1_TimeBaseInitTypeDef TIM1_TimeBaseStructure;TIM1_OCInitTypeDef TIM1_OCInitStructure; TIM1_BDTRInitTypeDef TIM1_BDTRInitStructure;u16 ADC_RegularConvertedValueTab32;ErrorStatus HSEStartUpStatus;/* Private function prototypes*/vo
4、id RCC_Configuration(void);void GPIO_Configuration(void);void NVIC_Configuration(void);/* Private functions*/* Function Name : main* Description : Main program* Input : None* Output : None* Return : None*int main(void)#ifdef DEBUGdebug();#endif/* System clocks configuration*/RCC_Configuration();/* N
5、VIC configuration*/NVIC_Configuration();/* GPIO configuration*/GPIO_Configuration();TIM1_Delnit();/* Time Base configuration */TIM1_TimeBaseStructure.TIM1_Prescaler = 0x00;TIM1_TimeBaseStructure.TIM1_CounterMode = TIM1_CounterMode_Up;TIM1_TimeBaseStructure.TIM1_Period = 3599;TIM1_TimeBaseStructure.T
6、IM1_ClockDivision = 0x00;TIM1_TimeBaseStructure.TIM1_RepetitionCounter = 0x00;TIM1_TimeBaseInit (&TIM1_TimeBaseStructure);/* Channell Configuration in PWM mode */TIM1_OCInitStructure.TIM1_OCMode = TIM1_OCMode_PWM1;TIM1_OCInitStructure.TIM1_OutputState = TIM1_OutputState_Enable;TIM1_OCInitStructure.T
7、IM1_OutputNState = TIM1_OutputNState_Enable;TIM1_OCInitStructure.TIM1_Pulse = 100;TIM1_OCInitStructure.TIM1_OCPolarity = TIM1_OCPolarity_Low;TIM1_OCInitStructure.TIM1_OCNPolarity = TIM1_OCNPolarity_High;TIM1_OCInitStructure.TIM1_OCIdleState = TIM1_OCIdleState_Set;TIM1_OCInitStructure.TIM1_OCNIdleSta
8、te = TIM1_OCIdleState_Reset;TIM1_OC1Init (&TIM1_OCInitStructure);/* TIM1 main Output Enable */TIM1_CtrlPWMOutputs(ENABLE);/* TIM1 counter enable */TIM1_Cmd(ENABLE);/* DMA Channell Configuration*/DMA_DeInit(DMA_Channel1);DMA_lnitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;DMA_lnitStructure.DMA
9、_MemoryBaseAddr = (u32)&ADC_RegularConvertedValueTab;DMA_lnitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;DMA_lnitStructure.DMA_BufferSize = 32;DMA_lnitStructure.DMA_Peripherallnc = DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;DMA_lnitStructure.DMA_PeripheralDataSize
10、 = DMA_PeripheralDataSize_HalfWord;DMA_lnitStructure.DMA_Mode = DMA_Mode_Circular;DMA_lnitStructure.DMA_Priority = DMA_Priority_VeryHigh;DMA_lnitStructure.DMA_M2M = DMA_M2M_Disable;DMA_lnit(DMA_Channel1, & DMA_lnitStructure);/* Enable DMA channel */DMA_Cmd(DMA_Channel1, ENABLE);/* ADC1 configuration
11、*/ADCnitStructure.ADC_Mode = ADC_Mode_lndependent;ADCnitStructure.ADC_ScanConvMode = DlSABLE;ADCnitStructure.ADC_ContinuousConvMode = DlSABLE;ADCnitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;ADCnitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADCnitStructure.ADC_NbrOfChannel = 1;AD
12、Cnit(ADC1, &ADC_lnitStructure);/* ADC1 regular channel14 configuration */ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_13Cycles5);/* Enable ADC1 DMA */ADC_DMACmd(ADC1, ENABLE);/* Enable ADC1 external trigger */ADC_ExternalTrigConvCmd(ADC1, ENABLE);/* Enable ADC1 */ADC_Cmd(ADC1, ENA
13、BLE);/* TlM1 counter enable */TIM1_Cmd(ENABLE);/* Test on channell transfer complete flag */ while(!DMA_GetFlagStatus(DMA_FLAG_TC1);/* Clear channell transfer complete flag */DMA_ClearFlag(DMA_FLAG_TC1);/* TlM1 counter disable */TIM1_Cmd(DISABLE);while (1)/* Function Name : RCC_Configuration* Descri
14、ption : Configures the different system clocks.* lnput : None* Output : None* Return : None*/void RCC_Configuration(void) /* RCC system reset(for debug purpose) */RCC_Delnit();/* Enable HSE */RCC_HSEConfig(RCC_HSE_ON);/* Wait till HSE is ready */HSEStartUpStatus = RCC_WaitForHSEStartUp();if(HSEStart
15、UpStatus = SUCCESS)/* Enable Prefetch Buffer */FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);/* Flash 2 wait state */FLASH_SetLatency(FLASH_Latency_2);/* HCLK = SYSCLK */RCC_HCLKConfig(RCC_SYSCLK_Div1);/* PCLK2 = HCLK */RCC_PCLK2Config(RCC_HCLK_Div1);/* PCLK1 = HCLK/2 */RCC_PCLK1Config(RCC_HC
16、LK_Div2);/* ADCCLK = PCLK2/4 */RCC_ADCCLKConfig(RCC_PCLK2_Div4);/* PLLCLK = 8MHz * 7 = 56 MHz */RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_7);/* Enable PLL */RCC_PLLCmd(ENABLE);/* Wait till PLL is ready */while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET)/* Select PLL as system clock source */R
17、CC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/* Wait till PLL is used as system clock source */while(RCC_GetSYSCLKSource() != 0x08)/* Enable peripheral clocks*/* Enable DMA clock */RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA, ENABLE);/* Enable GPIOA, GPIOC, ADC1 and TIM1 clock */RCC_APB2PeriphClockCmd(RCC_A
18、PB2Periph_GPIOA | RCC_APB2Periph_GPIOC | RCC_APB2Periph_ADC1 | RCC_APB2Periph_TIM1, ENABLE); /* Function Name : GPIO_Configuration* Description : Configures the different GPIO ports.* Input : None* Output : None* Return : None*/void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_lnitStructure;/* Conf
19、igure PC.01 and PC.04 (ADC Channel11 and Channel14) as analog input */GPIOnitStructure.GPIO_Pin = GPIO_Pin_4;GPIOnitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIOnit(GPIOC, & GPIO_InitStructure);/* Function Name : NVIC_Configuration* Description : Configures NVIC and Vector Table base location.* Input : N
20、one* Output : None* Return : None*/void NVIC_Configuration(void)#ifdef VECT_TAB_RAM/* Set the Vector Table base location at 0x20000000 */NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);#else /* VECT_TAB_FLASH */* Set the Vector Table base location at 0x08000000 */NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0
21、x0);#endif/*/附录 2 : Debug LogThu Jan 03 20:00:46 2008: DLL version: V3.62a, compiled Feb 23 2007 17:06:09Thu Jan 03 20:00:46 2008: Firmware: J-Link compiled Jun 14 2007 14:36:33 ARM Rev.5Thu Jan 03 20:00:46 2008: JTAG speed is initially set to: 32 kHzThu Jan 03 20:00:46 2008: Found Cortex-M3, Little
22、 endian.Thu Jan 03 20:00:46 2008: TPIU fitted.Thu Jan 03 20:00:46 2008: FPUnit: 6 code (BP) slots and 2 literal slotsThu Jan 03 20:00:46 2008: Software reset was performedThu Jan 03 20:00:46 2008: Initial reset was performedThu Jan 03 20:00:46 2008: J-Link found 2 JTAG devices. ARM core Id: 3BA00477
23、(Cortex M3), ARM core Id: 00000000(ARM9)Thu Jan 03 20:00:46 2008: Device at TAP0 selectedThu Jan 03 20:00:47 2008: 3080 bytes downloaded and verified (5.20 Kbytes/sec)Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000007C, target byte: 0x42, byte in file: 0x01Thu Jan 03 20:00:47 2008:
24、Warning:Verify error at address 0x2000007D, target byte: 0x08, byte in file: 0x80Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000007E, target byte: 0xCE, byte in file: 0x70Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000007F, target byte: 0x07, byte in file: 0x47Thu J
25、an 03 20:00:47 2008: Warning:Verify error at address 0x20000080, target byte: 0x42, byte in file: 0x50Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000081, target byte: 0x08, byte in file: 0xF0Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000082, target byte: 0xCF, by
26、te in file: 0x00Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000083, target byte: 0x07, byte in file: 0x60Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000084, target byte: 0x43, byte in file: 0x81Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000085,
27、target byte: 0x08, byte in file: 0x05Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000086, target byte: 0xCE, byte in file: 0x02Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000087, target byte: 0x07, byte in file: 0xD0Thu Jan 03 20:00:47 2008: Warning:Verify error at
28、 address 0x20000088, target byte: 0x42, byte in file: 0x5FThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000089, target byte: 0x08, byte in file: 0xF0Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000008A, target byte: 0xCE, byte in file: 0xFFThu Jan 03 20:00:47 2008: Wa
29、rning:Verify error at address 0x2000008B, target byte: 0x07, byte in file: 0x30Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000008C, target byte: 0x42, byte in file: 0x70Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000008D, target byte: 0x08, byte in file: 0x47Thu Jan
30、 03 20:00:47 2008: Warning:Verify error at address 0x2000008E, target byte: 0xCF, byte in file: 0x2EThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000008F, target byte: 0x07, byte in file: 0x49Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000090, target byte: 0x41, byte
31、 in file: 0x0AThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000091, target byte: 0x08, byte in file: 0x68Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000092, target byte: 0xCE, byte in file: 0xD2Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000094, ta
32、rget byte: 0x41, byte in file: 0xFBThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000095, target byte: 0x08, byte in file: 0xD4Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000096, target byte: 0xCB, byte in file: 0x2DThu Jan 03 20:00:47 2008: Warning:Verify error at a
33、ddress 0x20000097, target byte: 0x07, byte in file: 0x4AThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000098, target byte: 0x42, byte in file: 0x13Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000099, target byte: 0x08, byte in file: 0x68Thu Jan 03 20:00:47 2008: Warn
34、ing:Verify error at address 0x2000009A, target byte: 0xCD, byte in file: 0x53Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000009B, target byte: 0x07, byte in file: 0xF0Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000005C, target byte: 0x40, byte in file: 0x15Thu Jan 0
35、3 20:00:47 2008: Warning:Verify error at address 0x2000005D, target byte: 0x08, byte in file: 0x00Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000005E, target byte: 0xC8, byte in file: 0x00Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000005F, target byte: 0x07, byte i
36、n file: 0x20Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000060, target byte: 0x3E, byte in file: 0x03Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000061, target byte: 0x08, byte in file: 0x4CThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000062, targ
37、et byte: 0xD3, byte in file: 0x4FThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000063, target byte: 0x07, byte in file: 0xF0Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000064, target byte: 0x49, byte in file: 0x00Thu Jan 03 20:00:47 2008: Warning:Verify error at add
38、ress 0x20000065, target byte: 0x08, byte in file: 0x00Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000066, target byte: 0xD2, byte in file: 0xA0Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000067, target byte: 0x07, byte in file: 0x47Thu Jan 03 20:00:47 2008: Warnin
39、g:Verify error at address 0x20000068, target byte: 0x45, byte in file: 0x02Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x20000069, target byte: 0x08, byte in file: 0x4CThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000006A, target byte: 0xD1, byte in file: 0x03Thu Jan 03
40、20:00:47 2008: Warning:Verify error at address 0x2000006B, target byte: 0x07, byte in file: 0x4DThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000006C, target byte: 0x42, byte in file: 0xAEThu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000006D, target byte: 0x08, byte in file: 0x46Thu Jan 03 20:00:47 2008: Warning:Verify error at address 0x2000006E, target byte: 0xCE, byte in file: 0x20Thu Jan 03 20:00:47 2008: Warnin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理学副高考试题及答案
- 2025年中华护理学会试题及答案
- 2025年校园长聘任考试题及答案
- 仓库用品配送合同范本
- 江西省上进联考2024-2025学年高三上学期10月月考历史试题答案
- 代缴社保佣金合同范本
- 有机蔬菜种植创新创业项目商业计划书
- 保安仓库出租合同范本
- 充电桩安装施工协议书
- 农村灌溉安装合同范本
- 汽车吊吊装 专项施工方案
- 电子产品检测技术专业人才培养方案
- 2024年广东高考地理试题解析课件
- GB/T 3830-2024软聚氯乙烯压延薄膜和片材
- 2024年秋季新教材三年级上册PEP英语教学课件:含音频U2 第3课时 A Letters and sounds
- 定积分的概念市公开课一等奖省赛课获奖课件
- 关注健康远离肥胖(教学设计)人教版体育二年级下册
- 高处安装维护拆除作业课件-改
- DL∕T 1919-2018 发电企业应急能力建设评估规范
- DZ∕T 0283-2015 地面沉降调查与监测规范(正式版)
- 支气管扩张教学查房
评论
0/150
提交评论