资料连接:https://pan.baidu.com/s/1SJxSOUxW8at4NxEcjggahA提取码:6967

1.png

安装CPU支持包,找到G030系列,下载:

2.png

在ADC转换工程中添加OLED等文件:

3.png

使用PC13和PC14引脚作为I2C通信引脚,修改关键代码:


#define OLED_SCL_Clr()

PC->CLR_b.CLR14=1//SCL


#define OLED_SCL_Set() PC->SET_b.SET14=1


#define OLED_SDA_Clr()

PC->CLR_b.CLR13=1//DIN


#define OLED_SDA_Set() PC->SET_b.SET13=1

当然还需要修改若干头文件;ADC转换数据传输和OLED显示的关键代码如下:

//初始化 ADC 引脚,个人认为GPIO设置比较麻烦


PA0_INIT

(PA0_ADC0);

   

PA1_INIT

(PA1_ADC1);



PA2_INIT

(PA2_ADC2);

   

PA3_INIT

(PA3_ADC3);



PA4_INIT

(PA4_ADC4);

   

PA5_INIT

(PA5_ADC5);



PA6_INIT

(PA6_ADC6);

            

PA7_INIT

(PA7_ADC7);


         //初始化ADC


ADC_Init(200000,INTERNALADCVREFGND);


         //设置 ADC转换频率小于200K

         ADC_SetTrigger(ADC_START_BY_SOFTWAER,0);

         ADC_SetupChannels(AD0|AD1|AD2|AD3|AD4|AD5|AD6|AD7,TRIGGERMODE);

//     设置转换通道        

         //设置UART 引脚

         PA9_INIT(PA9_UART0_TX);

         PA10_INIT(PA10_UART0_RX);

         //初始化UART波特率等

         UART_Open(UART0,115200,UART_NO_PARITY,UART_TRIGGER_LEVEL_1_BYTE);      


UART_Send(UART0,"ADC

Data\n",12);


         OLED_Init();//设置OLED


OLED_ColorTurn(0);//




OLED_DisplayTurn(0);//



         while(1)

         {

                  OLED_ShowPicture(0,0,128,64,BMP1,1);

                  OLED_Refresh();

                  OLED_Clear();

                  OLED_ShowChinese(0,0,0,16,1);//?

                  OLED_ShowChinese(18,0,1,16,1);//?

                  OLED_ShowChinese(36,0,2,16,1);//?

                  OLED_ShowChinese(54,0,3,16,1);//?

                  OLED_ShowChinese(72,0,4,16,1);//?

                  OLED_ShowChinese(90,0,5,16,1);//?

                  OLED_ShowChinese(108,0,6,16,1);//?

                  OLED_ShowString(8,16,"ZHONGJINGYUAN",16,1);

                  OLED_ShowString(20,32,"2014/05/01",16,1);

                  OLED_ShowString(0,48,"ASCII:",16,1);  

                  OLED_ShowString(63,48,"CODE:",16,1);

                  OLED_ShowChar(48,48,t,16,1);//??ASCII??      

                  t++;


if(t>'~')t='

';


                  OLED_ShowNum(103,48,t,3,16,1);

                  OLED_Refresh();

         SYS_Delay(40000);

                  OLED_Clear();

                  OLED_ShowChinese(0,0,0,16,1);  //16*16 ?

           OLED_ShowChinese(16,0,0,24,1); //24*24 ?


OLED_ShowChinese(24,20,0,32,1);//32*32

?


           OLED_ShowChinese(64,0,0,64,1); //64*64 ?

                  OLED_Refresh();

           SYS_Delay(40000);

         OLED_Clear();


OLED_ShowString(0,0,"ABC",8,1);//6*8

“ABC”



OLED_ShowString(0,8,"ABC",12,1);//6*12

“ABC”



OLED_ShowString(0,20,"ABC",16,1);//8*16

“ABC”



OLED_ShowString(0,36,"ABC",24,1);//12*24

“ABC”


             OLED_Refresh();

                  OLED_Clear();

                  ADC_IssueSoftTrigger;


while(ADC->DR7_b.DONE==0); //wait for AD7

done


      ADC_result0=ADC->DR1_b.RESULT;


OLED_ShowString(0,0,"ADC:",12,1);//6*8

“ABC”


    OLED_ShowNum(28,4,(u32)ADC_result0,6,16,1);

          OLED_Refresh();

          SYS_Delay(50000);

          UART_Send(UART0,"ADC Data\n",12);

          UART_PutHex (UART0, ADC->DR1_b.RESULT);

         //将转换数据传到主机端     

         }

         显示结果如下:

4.png

硬件接线和OLED上显示的结果如图:

5.jpg

6.jpg