1方案介紹
在GD32F190的內部配有12位精度的模數轉換器,可對外部16個模擬輸入通道進行模擬信號采集。利用該性能,可以較好地對各種模擬信號量處理。
為了能使開發者較好地掌握對A/D轉換器的使用,在推出的相關資源中,有對應的例程可參考使用。由于相關資料是介紹自家產品的,因而在應用中,開發者還需配置第三方的器件,才能使設計的功能更加便于使用。這里就介紹一種以OLED為顯示器件對模擬信號進行顯示輸出的方案。
在該方案中,所用的顯示屏為雙色的0.96’OLED,其上部的1/3為黃色,另2/3為藍色。為了便于功能的擴展,在程序設計過程中,保留了開發板所具備的虛擬串口通訊功能。這樣既可以通過串行通訊來同上位機構成數據采集分析系統,也可以通過外掛相應的通信模塊來實現無線通訊或WiFi通訊,從而融入互聯網的行列中。當然,核心的功能則是射頻和串口之間的透傳。
2方案框圖
3設計應用描述及心得總結
在設計中,對顯示器件的選擇是有一定特色的,它雖與同檔次LCD5110液晶屏在功能上十分相近,但它的特色卻極為搶眼。
首先,在外形上它更為迷你,是穿戴設備的理想選擇對象。在工作機制上,LCD5110是依賴背光的投射來看清顯示的內容,而OLED則是靠自身的點亮來發光,在色彩方面它也由LCD5110的單一色調,而變為黃、藍兩種醒目的顏色,有效地增強了表現力。
另外,在引腳使用方面它也勝出一籌,LCD110 要占用8個引腳,而OLED則只需4個引腳。在數據傳送方面,它是以IIC總線方式。在應用中是由PA7來連接OLED的數據信號,由PA8來連接OLED的時鐘信號。其輸出高低電平的定義語句如下:
#defineOLED_SCLK_Clr() GPIO_ResetBits(GPIOA,GPIO_PIN_8)//SCL
#defineOLED_SCLK_Set() GPIO_SetBits(GPIOA,GPIO_PIN_8)
#defineOLED_SDIN_Clr() GPIO_ResetBits(GPIOA,GPIO_PIN_7)//SDA
#defineOLED_SDIN_Set() GPIO_SetBits(GPIOA,GPIO_PIN_7)
2個引腳的配語句如下:
GPIO_InitPara GPIO_InitStructure;
RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin =GPIO_PIN_8|GPIO_PIN_7;
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT;
GPIO_InitStructure.GPIO_Speed =GPIO_SPEED_50MHZ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_PIN_8|GPIO_PIN_7);
至于各功能函數直接引用OLED的例程即可,但要注意對數據類型的定義語句稍加調整,如要把u8改為uint8_t 等。
為了便于顯示數據及字符信息,在程序中配置了2中整體,及6*8的點陣字符和8*16的點陣字符。
const unsignedchar F6x8[][6] =
{
0x00, 0x00,0x00, 0x00, 0x00, 0x00,// sp
0x00, 0x00,0x00, 0x2f, 0x00, 0x00,// !
}
const unsignedchar F8X16[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,//sp
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,
0x30,0x00,0x00,0x00,//!
}
此外,使用字模提取軟件PCtoLCD2002還可自行構建小字庫來顯示中文,該軟件的界面如下圖所示。
4作品實物圖+視頻
實物圖如下圖所示,在OLED屏上,同時以兩種方式來顯示采樣值,一個以十進制數的方式,另一個是以電壓值的方式,于此同時,通過虛擬串口在上位則可將接收的數據繪制成波形圖。
-
轉換器
+關注
關注
27文章
8701瀏覽量
147155 -
顯示器
+關注
關注
21文章
4978瀏覽量
139971 -
模擬信號
+關注
關注
8文章
1129瀏覽量
52457
發布評論請先 登錄
相關推薦
評論