资料连接:https://pan.baidu.com/s/1SJxSOUxW8at4NxEcjggahA提取码:6967
安装CPU支持包,找到G030系列,下载:
在ADC转换工程中添加OLED等文件:
使用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);
//将转换数据传到主机端
}
显示结果如下:
硬件接线和OLED上显示的结果如图: