OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8498|回复: 3

求助:主处理函数问题

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
发表于 2012-4-17 19:53:16 | 显示全部楼层 |阅读模式
小弟用STM32F103VCT6做多路数据采集系统,ADC,USART,DMA,GPIO,RCC都配置了,最后的主处理函数(红字部分)不会写,求指点。

8路数据采集系统.doc

49 KB, 下载次数: 173

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-17 22:53:51 | 显示全部楼层
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2012-4-12
在线时间
0 小时
 楼主| 发表于 2012-4-19 19:39:11 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我把代码改成如下,但是串口出来的全是0.00V。这是咋么回事,我该咋么改。
vu16 AD_Value[8];    
 u16  Volt1,Volt2,Volt3,Volt4,Volt5,Volt6,Volt7,Volt8;    
 u16 GetVolt(u16 advalue); 

/*******************************************************************************
* Function Name: main
* Description : Main program
*******************************************************************************/
int main(void)
{
GPIO_Configuration();

USART_Configuration();
ADC_Configuration();
delay_init();  

    /* Infinite loop */
    while (1)
{

Volt1 =  GetVolt(AD_Value[0]);    //8路采集回来的电压
        Volt2 =  GetVolt(AD_Value[1]);
        Volt3 =  GetVolt(AD_Value[2]);       
        Volt4 =  GetVolt(AD_Value[3]);
        Volt5 =  GetVolt(AD_Value[4]);  
        Volt6 =  GetVolt(AD_Value[5]);    
        Volt7 =  GetVolt(AD_Value[6]);
        Volt8 =  GetVolt(AD_Value[7]);       
         delay_ms(500); 
printf("Volt1=%4.2fV\r\n", Volt1);
  delay_ms(500);
          printf("Volt2=%4.2fV\r\n", Volt2);  
 delay_ms(500); 
printf("Volt3=%4.2fV\r\n", Volt3);  
  delay_ms(500); 
printf("Volt4=%4.2fV\r\n", Volt4);
  delay_ms(500); 
printf("Volt5=%4.2fV\r\n", Volt5);
  delay_ms(500); 
printf("Volt6=%4.2fV\r\n", Volt6);
  delay_ms(500); 
printf("Volt7=%4.2fV\r\n", Volt7);
  delay_ms(500); 
printf("Volt8=%4.2fV\r\n", Volt8);  
     delay_ms(500); 
 
      /*====LED-ON=======*/
  GPIO_SetBits(GPIOD , GPIO_Pin_8);
  GPIO_SetBits(GPIOD , GPIO_Pin_9);
  GPIO_SetBits(GPIOD , GPIO_Pin_10);
  GPIO_SetBits(GPIOD , GPIO_Pin_11);
  delay_ms(500);   /* delay 500ms */
  /*====LED-OFF=======*/ 
  GPIO_ResetBits(GPIOD , GPIO_Pin_8);
  GPIO_ResetBits(GPIOD , GPIO_Pin_9);
  GPIO_ResetBits(GPIOD , GPIO_Pin_10);
  GPIO_ResetBits(GPIOD , GPIO_Pin_11);
  delay_ms(500);   /* delay 500ms */
}

}

   u16 GetVolt(u16 advalue) 

    return (u16)(advalue / 4096)*3.3; 

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-4-19 22:03:20 | 显示全部楼层
回复【3楼】xu1483018187:
---------------------------------
你先学会读1路的ADC.之后举一反三即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 14:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表