yiabc

    1. STM32TIM8不能触发DAC1 17/9078 stm32/stm8 2011-01-20
                                       int main(void) { #ifdef DEBUG     debug(); #endif         /* System clocks configuration ---------------------------------------------*/     RCC_Configuration();         /* NVIC configuration ------------------------------------------------------*/     NVIC_Configuration();         /* GPIO configuration ------------------------------------------------------*/     GPIO_Configuration();         /* Configure the USART1 */ //    USART_Configuration1();     //    printf("\r\n USART1 print AD_value -------------------------- \r\n");     /* TIM8 Configuration */     /* Time base configuration */ //        TIM_DeInit(TIM6);     TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);     TIM_TimeBaseStructure.TIM_Period = 0x19;              TIM_TimeBaseStructure.TIM_Prescaler = 0x0;           TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;       TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);     /* TIM8 TRGO selection */     TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update);     /* DAC channel1 Configuration */         DAC_StructInit(&DAC_InitStructure);     DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO;     DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;     DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;     DAC_Init(DAC_Channel_1, &DAC_InitStructure);     /* DAC channel2 Configuration */     DAC_Init(DAC_Channel_2, &DAC_InitStructure);     /* Fill Sine32bit table */     for (Idx= 0; Idx<32; Idx++)     {       DualSine12bit[Idx] = (Sine12bit[Idx] << 16) + (Sine12bit[Idx]);     }     /* DMA2 channel3 configuration */     DMA_DeInit(DMA2_Channel3);     DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_Address;     DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&DualSine12bit;     DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;     DMA_InitStructure.DMA_BufferSize = 32;     DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;     DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;     DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;     DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;     DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;     DMA_InitStructure.DMA_Priority = DMA_Priority_High;     DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;     DMA_Init(DMA2_Channel3, &DMA_InitStructure);     /* Enable DMA2 Channel3 */     DMA_Cmd(DMA2_Channel3, ENABLE);     /* Enable DAC Channel1: Once the DAC channel1 is enabled, PA.04 is     automatically connected to the DAC converter. */     DAC_Cmd(DAC_Channel_1, ENABLE);     /* Enable DAC Channel2: Once the DAC channel2 is enabled, PA.05 is     automatically connected to the DAC converter. */     DAC_Cmd(DAC_Channel_2, ENABLE);     /* Enable DMA for DAC Channel1 */     DAC_DMACmd(DAC_Channel_1, ENABLE);     /* TIM8 enable counter */     TIM_Cmd(TIM6, ENABLE);         while (1)     {     }         /* DMA channel1 configuration ----------------------------------------------/     DMA_DeInit(DMA1_Channel1);     DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;      // 外设地址     DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue; // 内存地址     DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;               // DMA 传输方向单向     DMA_InitStructure.DMA_BufferSize = 1;                            // 设置DMA在传输时缓冲区的长度 word     DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // 设置DMA的外设递增模式,一个外设     DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;         // 设置DMA的内存递增模式     DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;  // 外设数据字长     DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;          // 内存数据字长     DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;     // 设置DMA的传输模式:连续不断的循环模式     DMA_InitStructure.DMA_Priority = DMA_Priority_High; // 设置DMA的优先级别     DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;        // 设置DMA的2个memory中的变量互相访问     DMA_Init(DMA1_Channel1, &DMA_InitStructure);         / Enable DMA channel1 /     DMA_Cmd(DMA1_Channel1, ENABLE);           / ADC1 configuration ------------------------------------------------------/     ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;   // 独立工作模式     ADC_InitStructure.ADC_ScanConvMode = ENABLE;         // 扫描方式     ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;   // 连续转换     ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; // 外部触发禁止     ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;              // 数据右对齐     ADC_InitStructure.ADC_NbrOfChannel = 1;              // 用于转换的通道数     ADC_Init(ADC1, &ADC_InitStructure);         / ADC1 regular channel14 configuration /     ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_55Cycles5);         / Enable ADC1 DMA /     ADC_DMACmd(ADC1, ENABLE);         / Enable ADC1 /     ADC_Cmd(ADC1, ENABLE);         / Enable ADC1 reset calibaration register /        ADC_ResetCalibration(ADC1);     / Check the end of ADC1 reset calibration register /     while(ADC_GetResetCalibrationStatus(ADC1));         / Start ADC1 calibaration /     ADC_StartCalibration(ADC1);     / Check the end of ADC1 calibration /     while(ADC_GetCalibrationStatus(ADC1));           / Start ADC1 Software Conversion /     ADC_SoftwareStartConvCmd(ADC1, ENABLE);         while(1)     {         AD_value = ADC_GetConversionValue(ADC1);         if (ticks++ >= 900000) {                  / Set Clock1s to 1 every 1 second    /             ticks   = 0;             Clock1s = 1;         }             / Printf message with AD value to serial port every 1 second             /         if (Clock1s) {             Clock1s = 0;             printf("The current AD value = 0x%04X \r\n", AD_value);         }         }           */ } main()函数中RCC配置好了 void RCC_Configuration(void) {   /* RCC system reset(for debug purpose) */   RCC_DeInit();   /* Enable HSE */   RCC_HSEConfig(RCC_HSE_ON);   /* Wait till HSE is ready */   HSEStartUpStatus = RCC_WaitForHSEStartUp();   if(HSEStartUpStatus == 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_HCLK_Div2);     /* PLLCLK = 8MHz * 9 = 72 MHz */     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);     /* Enable PLL */     RCC_PLLCmd(ENABLE);     /* Wait till PLL is ready */     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)     {     }     /* Select PLL as system clock source */     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);     /* Wait till PLL is used as system clock source */     while(RCC_GetSYSCLKSource() != 0x08)     {     }   }      /* Enable DMA clock */ //  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);   /* Enable ADC1 and GPIOC clock */ //  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA, ENABLE);   /* Enable USART1 and GPIOA clock */ //  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);   /* Enable peripheral clocks --------------------------------------------------*/   /* DMA clock enable */   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);   /* AFIO and GPIOA Periph clock enable */   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE);   /* DAC Periph clock enable */   RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);   /* TIM6 Periph clock enable */   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); } 程序是这样的   上面只是我这样写的
    2. 按键和LED灯怎么复用IO管脚 36/18150 stm32/stm8 2010-10-22
                                       
      公阳,电流从E -> C -> 输出到LED,用PNP 公阴,电流从LED -> C -> 流出到地,用NPN 目的是让三极管的BE驱动电流不受负载影响,充分饱和
      我怎么觉得是反的呢? 公阳,电流从E -> C -> 输出到LED,用NPN 公阴,电流从LED -> C -> 流出到地,用PNP
    3.                                  mark
    4. STM32新库V3.3.0数据类型不对应问题? 21/10036 stm32/stm8 2010-08-16
                                       这个是要用SysTick,自己添加的
    5. STM8S103K使用I2C通信经常出错 24/10854 stm32/stm8 2010-06-25
      下载 (779.28 KB) 2010-6-25 11:03 时钟线下降沿 下载 (782.3 KB) 2010-6-25 11:03 时钟线上升沿 下载 (781.87 KB) 2010-6-25 11:03 数据线下降沿 下载 (780.36 KB) 2010-6-25 11:03 数据线上升沿 数据线很不正常,加100p电容下地也还是一样 不知道该怎么弄
    6. 你要记住一点,老师知识量比你大一些,可以教你具体知识,从他嘴里蹦出的其余的东西全是扯淡。 门槛不高,不一定非要大学生才行。
    7. wince5.0调用sqlite报错 11/9283 嵌入式系统 2010-05-24
      我就是使用的这个目录下CompactFramework的System.Data.SQLite.dll,难道不对吗
    8. 求助,无法安装BSP怎么回事啊? 11/5147 嵌入式系统 2010-05-11
      CE5.0吧? 需要在PB上File->Manage Catalog Items然后点import找到你的SMDK2440.cec再建立项目的时候就可以了。
    9. 女生单片机 242/53438 嵌入式系统 2010-04-20
      个人感觉女生还是去研究一下上位机程序比较好
    10. RT73-TLWN321G+无线网卡在linux上的安装 3/4477 Linux开发 2010-04-12
      能把错误代码贴点上来吗?
    11. 他贴的他D:盘的图
    12. 求教:STM32的那个芯片支持FSMC? 6/4026 stm32/stm8 2010-03-24
                                       5:30啊
    13. 一个简单电子钟调试 5/2752 嵌入式系统 2010-03-14
      P0=table1[dis[k]]; 这个table1一共才12个,dis[k]的值是否在0-11呢? dis[8]={0x03,0x03,0xfd,0x03,0x03,0xfd,0x03,0x03};// 0xfd是否该改为0x0b?
    14.                                  头文件没有包含呗
    15. Windows ce的数据库 9/3601 嵌入式系统 2010-03-01
      请问怎么做?数据都在txt文件上
    16. 带phy的arm很少,一般都是mac,w5100应该可以,还省事。
    17. 智林STM32的人机交互工程 6/4037 stm32/stm8 2010-01-20
                                       兄弟,把你的例子程序下载下来试用了,发现不太正常呢。液晶显示都是一些乱的东西,感觉就是没有初始化好。希望你修正了再放上来了
    18. 关于ISP烧录 7/3908 stm32/stm8 2010-01-07
                                       请给出你的电路图。 可以给VDDA与VDD分开供电,但有2个条件:1)VDDA与VDD之间的电压差任何时候都不能超过300mV;2)VDDA与VDD必须同时上电、同时断电,否则前面的条件就满足不了啦。
    19. cached,uncached地址有什么区别 9/6241 嵌入式系统 2009-12-03
      涉及到Io访问速度问题,通常缓冲可以提高系统Io效率,但是有些地方比如OAL层或者bootloader中使用缓冲可能造成灾难,例如缓冲可能造成我们对设备的写操作的时序不对等等。因此一般在驱动中都是使用不带缓冲的设备地址即0xA0000000-0xBFFFFFFF!
    20. 怎样生成CCS中的可执行文件 9/3586 嵌入式系统 2009-11-30
      谢谢啦,CMD是要自己写的,我已经成功了~~呵呵

最近访客

< 1/1 >

统计信息

已有78人来访过

  • 芯积分:--
  • 好友:--
  • 主题:6
  • 回复:76

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言