久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8651|回復: 2
收起左側

STM32ADS1256采集源代碼8通道24位

[復制鏈接]
ID:205405 發表于 2017-7-5 16:30 | 顯示全部樓層 |閱讀模式
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "usart.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "stmflash.h"
#include "usb_lib.h"
#include "math.h"
#include "hw_config.h"
#include "string.h"
#include "stdlib.h"
#include "lcd.h"
#include "task_manage.h"
#include "bsp_ads1256.h"


int main(void)
{
        int32_t adc[8];
        int32_t volt[8];
        uint8_t i;
        uint8_t ch_num;
        char infoBackPC[64];
        char infoShowLCD[64];
  SystemInit();
        delay_init(72);             //延時初始化
        NVIC_Configuration();
        uart_init(256000);   //串口初始化
        key_init();//按鍵初始化
        initial_lcd();//液晶初始化
        LCD_Clear();
        LCD_Refresh_Gram();
        LCD_Show_CEStr(0,0,"ADS1256");//黑色
        LCD_Refresh_Gram();
        USBRelinkConfig();
        delay_ms(100);        /* 等待上電穩定,等基準電壓電路穩定, bsp_InitADS1256() 內部會進行自校準 */
bsp_InitADS1256();        /* 初始化配置ADS1256.  PGA=1, DRATE=30KSPS, BUFEN=1, 輸入正負5V */
       
        /* 打印芯片ID (通過讀ID可以判斷硬件接口是否正常) , 正常時狀態寄存器的高4bit = 3 */
        {
                uint8_t id;

                id = ADS1256_ReadChipID();

                USB_SendStr("\r\n");
                USB_SendStr("讀取芯片ID\r\n");
                if (id != 3)
                {
                        sprintf(infoBackPC, "Error, ASD1256 Chip ID = 0x%X\r\n", id);
                }
                else
                {
                        sprintf(infoBackPC, "Ok, ASD1256 Chip ID = 0x%X\r\n", id);
                }
                USB_TxWrite((uint8_t*)infoBackPC, strlen(infoBackPC));
        }

        /* 設置PGA增益,數據更新速率 */
        #if 1
                USB_SendStr("\r\nPGA增益 = 1, 數據輸出速率 = 15sps, 單端8路掃描\r\n\r\n");

                ADS1256_CfgADC(ADS1256_GAIN_1, ADS1256_15SPS);        /* 配置ADC參數: 增益1:1, 數據輸出速率 15Hz */

                /*
                   中斷服務程序會自動讀取ADC結果保存在全局變量,主程序通過 ADS1256_GetAdc() 函數來讀取這些數據
                */
                ADS1256_StartScan(0);        /* 啟動中斷掃描模式. 0表示單端8路,1表示差分4路 */
                ch_num = 8;                /* 通道數 = 8 或者4 */
        #else
                USB_SendStr("\r\nPGA增益 = 1, 數據輸出速率 = 15sps, 差分4路掃描\r\n\r\n");

                ADS1256_CfgADC(ADS1256_GAIN_1, ADS1256_15SPS);        /* 配置ADC參數: 增益1:1, 數據輸出速率 15Hz */

                /*
                   中斷服務程序會自動讀取ADC結果保存在全局變量,主程序通過 ADS1256_GetAdc() 函數來讀取這些數據
                */
                ADS1256_StartScan(1);        /* 啟動中斷掃描模式. 0表示單端8路,1表示差分4路 */
                ch_num = 4;                /* 通道數 = 8 或者4 */
        #endif
       
        while(1)
        {
                for (i = 0; i < ch_num; i++)
                {
                        /* 從全局緩沖區讀取采樣結果。 采樣結果是在中斷服務程序中讀取的。*/
                        adc[i] = ADS1256_GetAdc(i);

                        /* 4194303 = 2.5V , 這是理論值,實際可以根據2.5V基準的實際值進行公式矯正 */
                        volt[i] = ((int64_t)adc[i] * 2500000) / 4194303;        /* 計算實際電壓值(近似估算的),如需準確,請進行校準 */
                }
                if(upToPC)
                /* 打印采集數據 */
                {
                        int32_t iTemp;
                        upToPC = 0;
                        sprintf(infoBackPC, "[%dCH_NUM]\r\n", ch_num);USB_TxWrite((uint8_t*)infoBackPC, strlen(infoBackPC));
                        for (i = 0; i < ch_num; i++)
                        {
                                iTemp = volt[i];        /* 余數,uV  */
                                if (iTemp < 0)
                                {
                                        iTemp = -iTemp;
                                        sprintf(infoBackPC, "%d=%6d,(-%d.%03d %03d V) \r\n", i, adc[i], iTemp /1000000, (iTemp%1000000)/1000, iTemp%1000);
                                }
                                else
                                {
                                        sprintf(infoBackPC,"%d=%6d,( %d.%03d %03d V) \r\n", i, adc[i], iTemp/1000000, (iTemp%1000000)/1000, iTemp%1000);
                                }
                                USB_TxWrite((uint8_t*)infoBackPC, strlen(infoBackPC));
                        }
                        //在液晶均顯示8通道電壓,單位0.1mv
                        for(i = 0; i < 4; i++)
                        {
                                sprintf(infoShowLCD, "CH%d", i*2);
                                LCD_ShowString(1,0 , i*16, (const u8*)infoShowLCD);
                                LCD_Refresh_Gram();
                                sprintf(infoShowLCD, "%05d", volt[i*2]/100);
                                LCD_ShowString(0,24 , i*16, (const u8*)infoShowLCD);
                                LCD_Refresh_Gram();

                                sprintf(infoShowLCD, "CH%d", i*2+1);
                                LCD_ShowString(1,64 , i*16, (const u8*)infoShowLCD);
                                LCD_Refresh_Gram();
                                sprintf(infoShowLCD, "%05d", volt[i*2+1]/100);
                                LCD_ShowString(0,88 , i*16, (const u8*)infoShowLCD);
                                LCD_Refresh_Gram();
                        }
                LCD_Refresh_Gram();
                }
        }
}


8通道AD轉換stm32.zip

434.14 KB, 下載次數: 102, 下載積分: 黑幣 -5

回復

使用道具 舉報

ID:59400 發表于 2017-7-14 16:53 | 顯示全部樓層
看看行不行先
回復

使用道具 舉報

ID:581140 發表于 2019-7-13 10:51 | 顯示全部樓層
定義了infoShowLCD,之后就可以直接用了????
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 麻豆changesxxx国产 | 欧美黄视频| 国产精品2| 99热精品在线观看 | a天堂在线 | 亚洲女人天堂网 | 国产精品福利视频 | www.99久久.com| 欧美一区二区三区电影 | 免费一级做a爰片久久毛片潮喷 | 国产91在线观看 | 在线一区观看 | 欧美a级成人淫片免费看 | 欧美一区二区三区在线观看 | 成年人视频在线免费观看 | 亚洲精品一区二区 | 精品av天堂毛片久久久借种 | av一级久久| 91精品国产综合久久久久久蜜臀 | 欧美中文字幕一区二区三区 | 女同av亚洲女人天堂 | 国产精品一区二区精品 | 成人不卡在线 | 蜜桃精品噜噜噜成人av | 中文字幕av一区 | 成人在线视频免费观看 | 国内激情av片 | 欧美国产精品一区二区三区 | 在线观看国产精品视频 | 欧美一区2区三区4区公司 | 午夜精品在线观看 | 国产欧美精品一区二区三区 | 91视频a| 国产精品久久久久一区二区三区 | 国产精品久久久久无码av | 91视频在线 | 欧美男人的天堂 | 91小视频| 国产1区2区 | 亚洲444eee在线观看 | 视频一区 国产精品 |