使用的 LCD模块 和 TM4C123GH6PM 单片机如下:
【以下所有步骤都是基于一个可以编译通过的工程进行的,不管main.c里面是什么程序,只要编译可以通过就可以。】
首先想要驱动AY-MSE-Kit套件中的LCD模块并显示我们需要三个LCD驱动文件
可以在这个链接下载这三个文件:LCD驱动文件
下载完成后将这个三个文件粘贴到你的工程目录下,如下图所示:
同样在CCS中也可以看到,这几个文件已经添加到了工程中:
然后,打开main.c文件,将下面程序粘贴到main.c中:
#include <stdint.h> #include <stdbool.h> #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/sysctl.h" #include "driverlib/adc.h" #include "LCDDriver.h" unsigned char TempAvg[4]={0}; unsigned char TempValueC[2]={0}; unsigned char TempValueF[2]={0}; unsigned char number = '0'; uint32_t ui32TempAvg; uint32_t ui32TempValueC; uint32_t ui32TempValueF; int main(void) { uint32_t ui32ADC0Value[4]; SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ); SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); ADCSequenceConfigure(ADC0_BASE, 1, ADC_TRIGGER_PROCESSOR, 0); ADCSequenceStepConfigure(ADC0_BASE, 1, 0, ADC_CTL_TS); ADCSequenceStepConfigure(ADC0_BASE, 1, 1, ADC_CTL_TS); ADCSequenceStepConfigure(ADC0_BASE, 1, 2, ADC_CTL_TS); ADCSequenceStepConfigure(ADC0_BASE,1,3,ADC_CTL_TS|ADC_CTL_IE|ADC_CTL_END); ADCSequenceEnable(ADC0_BASE, 1); // 使能LCD LCD_Enable(); // 初始化LCD LCD_Init(); // 清屏 LCD_ScreenClr(); while(1) { ADCIntClear(ADC0_BASE, 1); ADCProcessorTrigger(ADC0_BASE, 1); while(!ADCIntStatus(ADC0_BASE, 1, false)) { } ADCSequenceDataGet(ADC0_BASE, 1, ui32ADC0Value); ui32TempAvg = (ui32ADC0Value[0] + ui32ADC0Value[1] + ui32ADC0Value[2] + ui32ADC0Value[3] + 2)/4; ui32TempValueC = (1475 - ((2475 * ui32TempAvg)) / 4096)/10; ui32TempValueF = ((ui32TempValueC * 9) + 160) / 5; TempAvg[0]=ui32TempAvg/1000; ui32TempAvg=ui32TempAvg-TempAvg[0]*1000; TempAvg[1]=ui32TempAvg/100; ui32TempAvg=ui32TempAvg-TempAvg[1]*100; TempAvg[2]=ui32TempAvg/10; TempAvg[3]=ui32TempAvg%10; LCD_Draw_Char(number + TempAvg[0], 1,0); LCD_Draw_Char(number + TempAvg[1], 1,8); LCD_Draw_Char(number + TempAvg[2], 1,16); LCD_Draw_Char(number + TempAvg[3], 1,24); TempValueC[0]=ui32TempValueC/10; TempValueC[1]=ui32TempValueC%10; LCD_Draw_Char(number + TempValueC[0], 2,0); LCD_Draw_Char(number + TempValueC[1], 2,8); TempValueF[0]=ui32TempValueF/10; TempValueF[1]=ui32TempValueF%10; LCD_Draw_Char(number + TempValueF[0], 3,0); LCD_Draw_Char(number + TempValueF[1], 3,8); } }
随后点击编译,但是可能会报错,显示信息如下:
这个报错具体的解决方案参考我的另一篇博客:点击打开链接
在CCS Project Properties -> CCS Build -> ARM Compiler -> Advanced Options -> Predefined symbols添加完成后,再次进行编译,就不会再报错了~~~
随后将程序下载到单片机中,就能在LCD模块上显示出ADC采样得到的温度值了!