使用ch552的ADC測量電壓,為什么沒有顯示數(shù)據(jù)?

#include "CH554.H"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

#include "Debug.H"

#include "GPIO.H"

#include "HT1621.H"

#include "ADC.H"

#include "stdio.h"

#include

#include

#define uchar unsigned char

#define uint? unsigned int?

//? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? 1? ? ? 2? ? ? 3? ? ? ?4? ? ? ?5? ? ? 6? ? ? ?7? ? ? 8? ? ? ? 9

uchar code tabe1[11] = {0xF0,0x00,0xD0,0x90,0x20,0xB0,0xF0,0x10,0xF0,0xB0};

uchar code tabe2[11] = {0xA0,0xA0,0x60,0xE0,0xE0,0xC0,0xC0,0xA0,0xE0,0xE0};


uchar a0,a1,a2,num;


/*******************************************************************************

* Function Name? : Show_Init()

* Description? ? : 顯示對應(yīng)的電壓

*******************************************************************************/

void Show_Init(uchar a0,uchar a1,uchar a2)

{

Write_1621(15,tabe1[a0],4);

Write_1621(16,tabe2[a0],4);

Write_1621(17,tabe1[a1],4);

Write_1621(18,tabe2[a1],4);

Write_1621(19,tabe1[a2],4);

Write_1621(20,tabe2[a2],4);

}

void main( )?

{

UINT16 i;

ADCInit(0);

EA=1;? ? ? ? ? ? ? //開啟全局中斷

Init_1621();? ? ? ?//初始化HT1621

HT1621_all_off();? //清空LCD顯示

while(1)

{

for(i=0;i<4;i++)

{

ADC_ChannelSelect(3);? ? ? ? ?//ADC采樣電源開啟和通道設(shè)置,采樣通道AIN3

ADC_START = 1;? ? ? ? ? ? ? ? //開啟采樣,等待采樣完成進(jìn)入中斷

while(ADC_START);? ? ? ? ? ? ?//采樣完成,ADC_START=0

num=ADC_DATA;

mDelaymS(100);? ? ? ? ? ? ? ? //等待,進(jìn)入下通道采集數(shù)據(jù)

}

a0=num/100;

a1=num%100/10;

a2=num%10;

Show_Init(a0,a1,a2);

}

}


用串口打印看一下執(zhí)行完4次循環(huán)之后num的值變成什么


顯示空白,沒有數(shù)據(jù)


您可以先解決串口打印調(diào)試問題,然后將值打印出來,或者在每一行代碼之間增加打印,判斷是不是在什么地方卡住了。


a7c4284ba14a559bdb8b7d25ead37b6.png

742abe182ce1143fa4bbac60c592e8f.png

使用串口調(diào)試,為什么會沒有數(shù)據(jù)顯示?


/********************************** (C) COPYRIGHT *******************************

* File Name? ? ? ? ? : Main.C

* Author? ? ? ? ? ? ?: WCH

* Version? ? ? ? ? ? : V1.0

* Date? ? ? ? ? ? ? ?: 2018/07/25

* Description? ? ? ? : CH544 串口1 收發(fā)? ? ? ? ? ? ? ? ? ?

*******************************************************************************/

#include "..\Public\CH554.H"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

#include "..\Public\Debug.H"

#include "UART1.H"

#include "stdio.h"

#include

#pragma? NOAREGS

void main( )?

{

//#if ( UART1_INTERRUPT == 0)?

UINT8 dat;

//#endif

? ? CfgFsys( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //CH554時鐘選擇配置? ?

? ? mDelaymS(20);

? ? mInitSTDIO( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//串口0調(diào)試端口初始化

? ? printf("start ...\n");?

? ? UART1Init( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //串口1初始化

while(1)

{

if ( UART1_INTERRUPT == 0)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //查詢方式,收到一個字節(jié),并轉(zhuǎn)發(fā)出去

dat = CH554UART1RcvByte( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //程序死等,直到收到一個字節(jié)

CH554UART1SendByte(dat);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//并通過串口1發(fā)回去

//#endif

}

}



看一下putchar函數(shù)實(shí)現(xiàn)


1638948983(1).png

這種情況是什么問題?,使用51單片機(jī)的串口調(diào)試是正確的的,想問一下是什么問題,那步出錯?

#include "..\Public\CH554.H"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

#include "..\Public\Debug.H"

#include "GPIO.H"

#include "stdio.h"

#include


#pragma? NOAREGS


void main( )?

{

? ? UINT16 j = 0;

? ? CfgFsys( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //CH554時鐘選擇配置? ?

? ? mDelaymS(20);

? ? mInitSTDIO( );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//串口0初始化


CH554UART0Alter();? ?//串口映射

? ? EA = 1;?

? ? while(1)

{

? printf("00\n");//串口打印結(jié)果

? ? ? mDelaymS(1000);

? printf("01\n");//串口打印結(jié)果

? ? ? mDelaymS(1000);

? printf("02\n");//串口打印結(jié)果

? ? ? mDelaymS(1000);

? ? }

}



試著切換接收的波特率呢,默認(rèn)的串口輸出在P31引腳


我想問一下怎么修改波特率9600,原來那個要57600波特率才可以,怎么修改變小波特率


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频