楼主真是强

                                 做个记号,下次好好看看
点赞  2009-3-14 09:25

楼主太强了!!

请问你刚学STM32用的什么开发板?? 能用keil软件么?
一定回复我哦!!!

我会一直关注这个帖子的!!!
点赞  2009-3-14 13:22

LZ已有硬件触发,不如加个等效采样功能,估计可以到达10M

                                  
点赞  2009-3-15 11:24

回复楼23 24

我是08年8月开始接触32的,导师对着一块芯片说,看看这块芯片,1M的AD,还带DMA,这么大容量的RAM和FLASH。内部几乎可以采到1万个点了。于是就开始了2个星期的痛苦入门。刚开始是用的万利的板子,网上好像很多例子都是基于这个板子的,可能出来比较早。但是现在看来例子相对较少。软件环境用的是板子带的IAR。

等效采样有听说过,但是没具体研究过。楼上有做过么?能否给些资料的链接。上次我去面试,面试官听到我这个最大能采200K的波形:他说这有什么用这么低。受打击了
点赞  2009-3-16 23:01

不错

                                 谢谢
点赞  2009-3-17 10:44

taiqiangle

                                  
点赞  2009-3-17 14:31

很好!

                                 水平已经相当可以了!
点赞  2009-3-19 11:46

双通道的问题

一直没搞明白的是如果用STM32的同一个AD(假如ADC1)的两个通道(或更多通道)进行采样,怎么编程序,如果再开一个DMA通道(同时再定义一个AD_Data[XX]数组),那么通过什么样的语句把AD的通道和DMA的通道对应起来的?谢谢



点赞  2009-3-22 09:29

不错,学习

                                  
点赞  2009-3-23 00:16

安安

                                 写的真好。
点赞  2009-3-24 19:14

希望能找到工作

                                 多学学多研究不怕找不到工作
点赞  2009-3-25 11:29

回复双通道问题

下面是我开多通道的代码给你参考下:

void DMA_ADC_Config()
{
      /* DMA channel1 configuration ----------------------------------------------*/
  DMA_DeInit(DMA_Channel1);//复位DMA通道x
  DMA_InitStructure.DMA_PeripheralBaseAddr = ADC_DR_Address;//定义 DMA通道外设基地址=ADC1_DR_Address     源
                                                              //AD采集到的数据存放的寄存器
  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC_RegularConvertedValueTab;//定义DMA通道存储器地址,内存中的数据 目的
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//指定外设为源地址
  DMA_InitStructure.DMA_BufferSize = 4;//定义DMA缓冲区大小4
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//当前外设寄存器地址不变
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//当前存储器地址增加
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//定义外设数据宽度16位
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//定义存储器数据宽度16位
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//DMA通道操作模式位环形缓冲模式
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA通道优先级高
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//禁止DMA通道存储器到存储器传输
  DMA_Init(DMA_Channel1, &DMA_InitStructure);//初始化DMA通道x
  DMA_Cmd(DMA_Channel1, ENABLE);//使能DMA通道x  
  
}

void ADC1_Channel_config()
{
  /* ADC1 configuration ------------------------------------------------------*/
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//AD转换模式
  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 = 4;//转换通道为通道4
  ADC_Init(ADC1, &ADC_InitStructure);
  /* ADC1 regular channel14 configuration */
  //ADC1选择信道14|15,音序器等级1,采样时间55.5个周期
  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5);    
  ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 2, ADC_SampleTime_55Cycles5);
  ADC_RegularChannelConfig(ADC1, ADC_Channel_6, 3, ADC_SampleTime_55Cycles5); 
  ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 4, ADC_SampleTime_55Cycles5);   
}
(这段代码是以前做万用表的时候用的,多次修改,有些注释可能没改过来)
然后在上面定义下数据数组
vu16 ADC_RegularConvertedValueTab[4];
结果4个通道的数据就按次序在这个数组里面了,
具体顺序应该是这样的,先是采集通道14,DMA自动把数据放到数组第一个位置然后DMA地址会加一
所以DMA_InitStructure.DMA_MemoryInc 一定要定义成 DMA_MemoryInc_Enable;也就是递增
然后通道15,依次类推到4次结束后触发一次DMA中断,然后又是通道14
点赞  2009-3-25 22:53

非常感谢

                                  
点赞  2009-3-25 23:18

不错啊

                                 不错啊
点赞  2009-3-28 13:52

不错,香版,上裤子

                                 毕业设计就该如此去做。
点赞  2009-3-28 19:07

如果是本科毕业设计

                                 那应该很任意找到工作。
点赞  2009-3-28 22:21

为什么要触发了?

                                 我觉得STM32这部分,不需触发呀,AD用自动开启,也不要定时器启动,利用AD采样的等时性就可以了.采用后把数据传给PC,PC来处理触发沿的问题就可以了.
点赞  2009-4-6 22:13

请教搂主如何提高STM32 的USB虚拟串口的速度?

 
我使用STM32的虚拟串口与PC机通信,代码都是基于ST提供的Demo.感觉速度只有大约每秒55K字节。想请问在正常情况下,速度应该是多少?如何提高传输速度?

  另外,搂主为何要自行写Windows下的驱动呢?为了提高速度?

Thanks  
 
点赞  2009-4-7 14:45

楼主找工作应该不难啊,能做到这样不错了。

                                 其实可以用LabVIEW来做PC端,这样比较容易些,开发速度要快不少。
点赞  2009-4-7 15:35

感觉描述的太复杂~

主要是window的驱动方面。感觉很复杂。
应该套用 框架,有个既定的框架的。USB驱动大同小异啊!那个USBBLUK就是吧!
点赞  2009-4-7 16:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复