int main(void)
{
u8 m=0;
u16 Buf[240]; /*ADC数据缓冲区*/
int16_t xBuf[240]; /*x坐标*/
int16_t yBuf[240]; /*y坐标*/
int16_t i; /* 有符号数 */
int16_t*px;
int16_t*py;
int16_t iTemp;
px=xBuf;
py=yBuf;
SystemInit();
uart_init(9600);
delay_init(72); //延时初始化
NVIC_Configuration();
LED_Init();
Adc_Init();
LCD_Init();
POINT_COLOR=RED;
while(1)
{
for(m=0;m<240;m++)
{
Buf[m]=Get_Adc(ADC_CH0);
}
for (i = 0; i < 240; i++)
{
px = i;
iTemp =150 + (int16_t)((1862-Buf)/50); // 为什么这句要用这样的式子啊?
if (iTemp > 320)
{
iTemp = 320;
}
else if (iTemp < 20)
{
iTemp = 20;
}
py = iTemp;
}
/* 清除波形 */
LCD_Clear(GREEN);
/* 显示网格 */
_Display_Grid(RED);
/* 显示更新的波形 */
_LCD_DrawPoints(xBuf,yBuf ,240,BLUE);
delay_ms(500);
LED1=!LED1;
}
}
原子哥,上面是AD采集的单路数据动态曲线在2.8寸液晶屏上显示的代码,我怎么也看不懂iTemp =150 + (int16_t)((1862-Buf)/50)这句话是什么意思来着,我试了试在7寸屏上做动态曲线显示结果程序下载后屏幕不显示,我想可能和这句有关,还望帮我解答一下这句话的意思啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
此句应该是计算Y轴的显示位置,和屏幕显示不显示应该没关系,
这个在哪个历程里?光盘里没看到啊?
while(1)
{
for(m=0;m<800;m++)
{
Buf[m]=Get_Adc(ADC_CH0);
}
for (i = 0; i < 800; i++)
{
px = i;
iTemp =230 + (int16_t)((1862-Buf)/50); //这一句话不知道为什么这样写啊
if (iTemp > 480)
{
iTemp = 480;
}
else if (iTemp < 20)
{
iTemp = 20;
}
py = iTemp;
}
/* 清除波形 */
LCD_Clear(GREEN);
/* 显示网格 */
// _Display_Grid(RED);
/* 显示更新的波形 */
_LCD_DrawPoints(xBuf,yBuf ,240,BLUE);
delay_ms(1000);
LED1=!LED1;
---------------------------------
_LCD_DrawPoints(xBuf,yBuf ,800,BLUE); 这一句忘改了 改过后还是不行
一周热门 更多>