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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8797|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91国产精品 | 久久久精品亚洲 | 亚洲精品乱码久久久久久9色 | 日本福利在线观看 | 欧美a免费| 91 在线| 自拍偷拍中文字幕 | 亚洲免费视频在线观看 | 欧美a级成人淫片免费看 | 风间由美一区二区三区在线观看 | 九九视频在线观看 | 国产精品视频一区二区三区不卡 | 国产精品福利网站 | 欧美福利在线 | 精品亚洲一区二区三区 | 色婷综合网 | 欧美激情精品久久久久久免费 | 国产精品二区三区在线观看 | 亚洲精品视频一区 | 又爽又黄axxx片免费观看 | 欧美 视频| 91久久北条麻妃一区二区三区 | 日韩在线不卡 | 成人免费视频网 | 国产黄色大片在线免费观看 | 四季久久免费一区二区三区四区 | 真人女人一级毛片免费播放 | 欧美在线视频网 | 亚洲视频在线一区 | 亚洲日日夜夜 | 神马影院一区二区三区 | 日韩高清黄色 | 日本免费一区二区三区 | 一区二区三区四区日韩 | 999免费观看视频 | 久久久久国产精品一区二区 | 精品在线一区二区 | 亚洲欧美一区二区三区视频 | 亚洲精品日韩一区二区电影 | 亚洲444eee在线观看 | 日韩中文字幕 |