外设资源实验1-OLED显示实验
实验目的:
掌握OLED显示器驱动的方法。
掌握I2C总线的基本时序控制原理和通信过程。
掌握STM32L071微控制器HAL库GPIO函数接口。
实验现象:
LoRa节点第一行上显示 “GXCT IOT”, 第二行上显示 “OLED Test”。
一、实验代码
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
Task_BrdInit();
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
Task_Main();
}
/* USER CODE END 3 */
}
二、Task_BrdInit函数
void Task_BrdInit(void)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);
OLED_PowerControl(ENABLE);
HAL_Delay(200);
OLED_Init();
OLED_Clear();
OLED_ShowString(0, 0, (unsigned char *)" ", 16);
OLED_ShowString(0, 2, (unsigned char *)" ", 16);
}
三、Task_Main函数
void Task_Main(void)
{
char lcdLine_1st_line[16];
char lcdLine_2st_line[16];
sprintf(lcdLine_1st_line, "GXCT IOT ");
sprintf(lcdLine_2st_line, "OLED Test ");
OLED_ShowString(0, 0, (unsigned char *)lcdLine_1st_line, 16);
OLED_ShowString(0, 2, (unsigned char *)lcdLine_2st_line, 16);
}