迷雾重重

    1. STM32 ADC TIM 4/3770 stm32/stm8 2012-01-09
      最新实验发现,程序是跳入了hardfaultexception中。可能是数组定义的问题,我数组容量是150,UINT16. 还是不能解释这个现象啊!大家积极帮忙啊,跪谢!
    2. STM32 ADC TIM 4/3770 stm32/stm8 2012-01-09
      好吧,上代码。谢谢各位了!此处仅上ADC配置和中断服务程序!详细程序在附件中!void ConfigAdMode(void) {        ADC_InitTypeDef        my_ADC_InitStructure;          ADC_DeInit(ADC1);      ADC_StructInit(&my_ADC_InitStructure);        my_ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;      //独立模式      my_ADC_InitStructure.ADC_ScanConvMode = DISABLE;  //debug yuanlai使能     my_ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;    //debug yuanlai失能      my_ADC_InitStructure.ADC_ExternalTrigConv =ADC_ExternalTrigConv_T1_CC1;          my_ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;      my_ADC_InitStructure.ADC_NbrOfChannel = AC_CLASS_NUM;        ADC_Init(ADC1, &my_ADC_InitStructure);      ADC_RegularChannelConfig(ADC1, ADC_Channel_4, AC_CLASS_ACV+1, ADC_SampleTime_1Cycles5);        ADC_RegularChannelConfig(ADC1, ADC_Channel_5, AC_CLASS_ACI+1, ADC_SampleTime_1Cycles5); } void  ADC1_2_IRQHandler(void) {if(ADC_GetITStatus(ADC1,ADC_FLAG_EOC)== SET)    ADC_ClearITPendingBit(ADC1,ADC_FLAG_EOC);       {        ADC_ClearFlag(ADC1,ADC_FLAG_EOC);         g8_Sysadc%=150;          gm_SampleTempData.ACdata1[g8_Sysadc][0]=ADC_GetConversionValue(ADC1);        }        g8_Sysadc++;        }
    3. STM32 TIM触发 ADC变换, DMA传输 3/5385 stm32/stm8 2012-01-05
      正弦表有的  但不知道这里也要用.80105785  魏  欢迎沟通  谢谢!
    4. 正弦表 3/3767 stm32/stm8 2011-12-23
      我找了一个试了一下。但就是不知道频率和幅值怎么设置的
    5. STM32 TIM触发 ADC变换, DMA传输 3/5385 stm32/stm8 2011-12-20
      自己给自己顶一个吧,希望大家积极回帖! 我把问题详细一点吧。上例中,我DMA_BufferSize的值设置成300.但是只传输了60左右组数据之后,DMA_BufferSize的值就变0了,也就是说传输完成了,事实上还有80多组数据没有从AC-DR中传输到内存,然后就进入了传输完成中断。
    6. STM32 交流采样 ADC 变换 5/6359 stm32/stm8 2011-12-12
      好吧,我再详细一点吧。对50HZ交流电压采样,ADC转化由TIM1的CC1触发。触发频率为7.5KHZ.也就是说我再一个交流电压信号的周期内可以采样150个点。   但是我运行程序的时候发现就只采了16个点,这些数据中有fff,然后有70个左右的点数据为0(应该就是没采到吧).之后又有十多个点有数据。。。目前情况就是这么的  请用过ADC采样交流信号的朋友们帮帮忙。不胜感激!
    7. STM32 交流采样 ADC 变换 5/6359 stm32/stm8 2011-12-09
      转换的结果是存到gm_SampleTempData.ACdata[2][150]里面的,ACdata[0]是交流电压,ACdata[1]是交流电流,ACdata[0]的150个元素中有000和FFF。我不知道这是ADC的问题还是数学统计里面的问题 而且,我只做了交流电压采样,有的交流电流还有数据,不能理解!还请大家指导!谢谢! [ 本帖最后由 迷雾重重 于 2011-12-9 13:30 编辑 ]
    8. STM32 交流采样 ADC 变换 5/6359 stm32/stm8 2011-12-09
      好吧,我把配置贴出来吧!          /* ADC1 registers reset ----------------------------------------------------*/           ADC_DeInit(ADC1);                           /* ADC1 configuration ------------------------------------------------------*/         ADC_StructInit(&my_ADC_InitStructure);         my_ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;         //独立模式         my_ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;                my_ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;         my_ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC3;                 my_ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;         my_ADC_InitStructure.ADC_NbrOfChannel = AC_CLASS_NUM;         ADC_Init(ADC1, &my_ADC_InitStructure);         // CLKad = 12MHz   Tconv = 7.5 + 12.5 = 20周期   f_conv = 12MHz / 20 = 600K         ADC_InjectedChannelConfig(ADC1, ADC_Channel_4, AC_CLASS_ACV+1, ADC_SampleTime_7Cycles5);          // AD_ACV     ADC_InjectedChannelConfig(ADC1, ADC_Channel_5, AC_CLASS_ACI+1, ADC_SampleTime_7Cycles5);          // AD_ACI DMA_DeInit(DMA1_Channel1);         my_DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;         my_DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&gm_SampleTempData.ACdata[0][0];         my_DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;         my_DMA_InitStructure.DMA_BufferSize = AC_SAMPLE_COUNT_NUM * AC_CLASS_NUM;         my_DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;         my_DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;         my_DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;         my_DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;         my_DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;         my_DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;         my_DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;         DMA_Init(DMA1_Channel1, &my_DMA_InitStructure);           // Enable DMA1 channel1         DMA_Cmd(DMA1_Channel1, ENABLE); TIM_OCStructInit(&my_TIM1_OCInitStructure);         // PWM 模式2         // 在向上计数时,一旦TIM1_CNTTIM1_CCR1 时通道3 为有效电平,否则为无效电平         my_TIM1_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;         // 输入/捕获 输出使能         my_TIM1_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;         // 输入/捕获 互补输出禁止         my_TIM1_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;         // TIM1_CCRx                        my_TIM1_OCInitStructure.TIM_Pulse = PWM1_PERIOD(gm_RCC_ClockFreq.PCLK2_Frequency) >> 1;          // 占空比初始化为 50%         // OCx 高电平有效           my_TIM1_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;         // OCxN 低电平有效         my_TIM1_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;         // 当MOE=0 时,如果实现了OCx/OCxN,则死区后OCxN/OCx=0                 my_TIM1_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;         my_TIM1_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;                                        TIM_OC3Init(TIM1, &my_TIM1_OCInitStructure); 该配置下的试验结果如下: 我做1V电压的交流采样,并进行ADC变换。最低电压约为-1.414.我叠加了1.65的直流,现在最低电压就差不多0.235左右。最高电压约3.064左右。参考电压是3.3的,但是转换结果怎么会有0000和FFF
    9. STM32一直处于复位状态复位 5/9613 stm32/stm8 2011-12-09
      最中检查表明  我买到二手器件了。。。。一上电就复位。谢谢各位!
    10. TIM_CtrlPWMOutputs(TIM1, ENABLE); 失能  试试呢?敢问楼主,TIM_OC1Init(TIM1, &TIM_OCInitStructure);这是通道1吧?ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC2;这是不是通道2?是不是矛盾的 ?我刚研究这块的  请指导  谢谢
    11. 铁电存储器的IIC通信 5/5412 stm32/stm8 2011-12-06
      你们用的是模拟IIC还是自带的?如果是模拟的话我很肯定的说,是时序的问题。重点就在程序中各处的延时。一个一个的试吧,调时序很麻烦的。我初学的,调了两个月才能读写数据。。。
    12. STM32一直处于复位状态复位 5/9613 stm32/stm8 2011-11-23
      自己给自己顶一个。 哥们,姐们,亲们顶起啊!
    13. stm32控制电机电流采样问题 2/6561 stm32/stm8 2011-11-21
      建议不要贴程序!
    14. 铁电RTC急救!谢谢 2/3028 stm32/stm8 2011-11-15
      感谢回帖! 不过我觉得你不是看不明白我说的是什么,是不明白这个现象吧?我描述的也比较清晰了啊!
    15. can't halt the core 7/14250 stm32/stm8 2011-09-20
      问题解决了,呵呵,是硬件的问题。板子上一个电感坏了。。。。以后大家调试时碰到问题千万不要网了检查硬件哦。
    16. can't halt the core 7/14250 stm32/stm8 2011-09-19
      不好意思,我初学的,不太懂。侦测到FLASH 是怎么判断的?你能不能把具体的步骤和要求以及改进方案写出来?
    17. 铁电存储器无应答 14/8611 stm32/stm8 2011-09-19
      终于成功的调通了,还是来做个总结吧。 正如楼上所说,是时序问题。确切的说是延时问题。我看别人延时是几十个指令周期,我开始也改了,但范围不大,就100以内改动。改了很久都不能通讯。后来我以冲动,就把时间搞到5000个指令周期,突然就能通讯了!然后再将延时优化,有的几十个收起就行了,有的延时要多点。我用最笨的方法,一个一个的试,最后终于得出了我认为的最优方案。 谢谢大家的支持!
    18. 怎样在ST官网里下例程 2/21044 stm32/stm8 2011-09-15
      谢谢啦!
    19. 铁电存储器无应答 14/8611 stm32/stm8 2011-08-09
      楼上所指的时间长度是?麻烦把相关资料给我发一个行吗?我QQ是81015785   谢谢 我用的是STM32  铁电是FM31256。我目前所看到的关于I2C通信时序的资料只局限于STM32的参考手册。
    20. 铁电存储器无应答 14/8611 stm32/stm8 2011-08-09
      首先,很感谢chunyang!!!已经是第三次帮我解答疑问了,虽然我还是没解决问题,但还是灰常的感激你啊! 是这样的  我检查起始信号,发现SDA SCL相继出现下降沿,没有缓冲,垂直下降的。手册上写的I2C时序有一个缓冲下降的过程,我不知道是不是这个影响正常通信的。停止条件也是垂直下降。 模拟I2C中,PB.9做的SDA脚。高电平时,SDA约为3.29V.在接受应答时,PB.9若设置成下拉输入模式,则本来应该是应答信号的低电平时刻,输出的仍为高电平信号,但电压约为2.9V。也就是说还是降了一点的,但是没降成低电平。 若将PB.9若设置成上拉输入模式或浮空输入,则在本来应该是应答的时候输出仍为3.29V.

最近访客

< 1/1 >

统计信息

已有965人来访过

  • 芯积分:--
  • 好友:--
  • 主题:16
  • 回复:26

留言

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


QQ931521083 2011-11-16
我是铁电一级代理,杨生,北方科讯。QQ931521083 ,你用铁电可以找我,好处大大
QQ931521083 2011-11-16
我是铁电一级代理,杨生,北方科讯。QQ931521083 ,你用铁电可以找我,好处大大
QQ931521083 2011-11-16
我是铁电一级代理,杨昂,北方科讯。QQ931521083 ,你用铁电可以找我,好处大大。
查看全部