stm32f767 stm32l010 oled hal

Dependencies:   SMALL_HAL_SSD1308_128x64_I2C mbed

Committer:
caa45040
Date:
Fri Aug 05 06:04:51 2022 +0000
Revision:
1:25837ff4fbee
Parent:
0:586ac17962ab
stm32f767 stm32l010 oled hal

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caa45040 0:586ac17962ab 1
caa45040 0:586ac17962ab 2 //i2c_HT16K33_test1_767_1
caa45040 0:586ac17962ab 3
caa45040 0:586ac17962ab 4 #include "mbed.h"
caa45040 0:586ac17962ab 5
caa45040 0:586ac17962ab 6 #include "main.h"
caa45040 0:586ac17962ab 7
caa45040 0:586ac17962ab 8 #include "SSD1308.h"
caa45040 0:586ac17962ab 9
caa45040 0:586ac17962ab 10
caa45040 0:586ac17962ab 11 #define ADDR (0x70<<1) // address
caa45040 0:586ac17962ab 12
caa45040 0:586ac17962ab 13 DigitalOut myled(PB_0);
caa45040 0:586ac17962ab 14
caa45040 0:586ac17962ab 15 I2C_HandleTypeDef hi2c1;
caa45040 0:586ac17962ab 16
caa45040 0:586ac17962ab 17 void SystemClock_Config(void)
caa45040 0:586ac17962ab 18 {
caa45040 0:586ac17962ab 19 RCC_OscInitTypeDef RCC_OscInitStruct = {0};
caa45040 0:586ac17962ab 20 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
caa45040 0:586ac17962ab 21 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
caa45040 0:586ac17962ab 22
caa45040 0:586ac17962ab 23 __HAL_RCC_PWR_CLK_ENABLE();
caa45040 0:586ac17962ab 24 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
caa45040 0:586ac17962ab 25
caa45040 0:586ac17962ab 26 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
caa45040 0:586ac17962ab 27 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
caa45040 0:586ac17962ab 28 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
caa45040 0:586ac17962ab 29 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
caa45040 0:586ac17962ab 30 HAL_RCC_OscConfig(&RCC_OscInitStruct);
caa45040 0:586ac17962ab 31
caa45040 0:586ac17962ab 32 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
caa45040 0:586ac17962ab 33 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
caa45040 0:586ac17962ab 34 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
caa45040 0:586ac17962ab 35 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
caa45040 0:586ac17962ab 36 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
caa45040 0:586ac17962ab 37 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
caa45040 0:586ac17962ab 38 HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0);
caa45040 0:586ac17962ab 39
caa45040 0:586ac17962ab 40 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
caa45040 0:586ac17962ab 41 PeriphClkInitStruct.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
caa45040 0:586ac17962ab 42 HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
caa45040 0:586ac17962ab 43 }
caa45040 0:586ac17962ab 44
caa45040 0:586ac17962ab 45 static void MX_I2C1_Init(void)
caa45040 0:586ac17962ab 46 {
caa45040 0:586ac17962ab 47 hi2c1.Instance = I2C1;
caa45040 0:586ac17962ab 48 hi2c1.Init.Timing = 0x00303D5B;
caa45040 0:586ac17962ab 49 hi2c1.Init.OwnAddress1 = 0;
caa45040 0:586ac17962ab 50 hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
caa45040 0:586ac17962ab 51 hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
caa45040 0:586ac17962ab 52 hi2c1.Init.OwnAddress2 = 0;
caa45040 0:586ac17962ab 53 hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
caa45040 0:586ac17962ab 54 hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
caa45040 0:586ac17962ab 55 hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
caa45040 0:586ac17962ab 56 HAL_I2C_Init(&hi2c1);
caa45040 0:586ac17962ab 57
caa45040 0:586ac17962ab 58 HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE);
caa45040 0:586ac17962ab 59 HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0);
caa45040 0:586ac17962ab 60 }
caa45040 0:586ac17962ab 61
caa45040 0:586ac17962ab 62 static void MX_GPIO_Init(void)
caa45040 0:586ac17962ab 63 {
caa45040 0:586ac17962ab 64 __HAL_RCC_GPIOB_CLK_ENABLE();
caa45040 0:586ac17962ab 65 }
caa45040 0:586ac17962ab 66
caa45040 0:586ac17962ab 67 void HAL_MspInit(void)
caa45040 0:586ac17962ab 68 {
caa45040 0:586ac17962ab 69 __HAL_RCC_PWR_CLK_ENABLE();
caa45040 0:586ac17962ab 70 __HAL_RCC_SYSCFG_CLK_ENABLE();
caa45040 0:586ac17962ab 71 }
caa45040 0:586ac17962ab 72
caa45040 0:586ac17962ab 73 void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
caa45040 0:586ac17962ab 74 {
caa45040 0:586ac17962ab 75 GPIO_InitTypeDef GPIO_InitStruct = {0};
caa45040 0:586ac17962ab 76 if(hi2c->Instance==I2C1) {
caa45040 0:586ac17962ab 77 __HAL_RCC_GPIOB_CLK_ENABLE();
caa45040 0:586ac17962ab 78 /**I2C1 GPIO Configuration
caa45040 0:586ac17962ab 79 PB8 ------> I2C1_SCL
caa45040 0:586ac17962ab 80 PB9 ------> I2C1_SDA
caa45040 0:586ac17962ab 81 */
caa45040 0:586ac17962ab 82 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
caa45040 0:586ac17962ab 83 GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
caa45040 0:586ac17962ab 84 GPIO_InitStruct.Pull = GPIO_PULLUP;
caa45040 0:586ac17962ab 85 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
caa45040 0:586ac17962ab 86 GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
caa45040 0:586ac17962ab 87 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
caa45040 0:586ac17962ab 88
caa45040 0:586ac17962ab 89 __HAL_RCC_I2C1_CLK_ENABLE();
caa45040 0:586ac17962ab 90 }
caa45040 0:586ac17962ab 91 }
caa45040 0:586ac17962ab 92
caa45040 0:586ac17962ab 93
caa45040 0:586ac17962ab 94
caa45040 0:586ac17962ab 95 int main()
caa45040 0:586ac17962ab 96 {
caa45040 0:586ac17962ab 97
caa45040 0:586ac17962ab 98 HAL_Init();
caa45040 0:586ac17962ab 99
caa45040 0:586ac17962ab 100 SystemClock_Config();
caa45040 0:586ac17962ab 101 MX_GPIO_Init();
caa45040 0:586ac17962ab 102 MX_I2C1_Init();
caa45040 0:586ac17962ab 103
caa45040 0:586ac17962ab 104 HAL_MspInit();
caa45040 0:586ac17962ab 105
caa45040 0:586ac17962ab 106 HAL_I2C_MspInit(&hi2c1);
caa45040 0:586ac17962ab 107
caa45040 0:586ac17962ab 108
caa45040 0:586ac17962ab 109 SSD1308 oled = SSD1308( &hi2c1 , SSD1308_SA0);
caa45040 0:586ac17962ab 110 //SSD1308 oled = SSD1308( &hi2c1 , ADDR);
caa45040 0:586ac17962ab 111
caa45040 0:586ac17962ab 112
caa45040 0:586ac17962ab 113
caa45040 0:586ac17962ab 114 //char n1_8[] = "12345678";
caa45040 0:586ac17962ab 115 char n1_8[] = "87654321";
caa45040 0:586ac17962ab 116 //char n1_8[] = "88888888";
caa45040 0:586ac17962ab 117
caa45040 0:586ac17962ab 118 int ii=0;
caa45040 0:586ac17962ab 119 for(int nn=0; nn<8; nn++) {
caa45040 0:586ac17962ab 120 // y x
caa45040 0:586ac17962ab 121 oled.writeBigChar(0, ii*16,n1_8[nn]);
caa45040 0:586ac17962ab 122 ii = ii + 1;
caa45040 0:586ac17962ab 123 } //for
caa45040 0:586ac17962ab 124 //pc.printf("Printed something\r\n");
caa45040 0:586ac17962ab 125 // printf("Printed something\r\n");
caa45040 0:586ac17962ab 126
caa45040 0:586ac17962ab 127 //oled.writeString(0, 0, "Hello World !");
caa45040 0:586ac17962ab 128
caa45040 0:586ac17962ab 129
caa45040 0:586ac17962ab 130
caa45040 0:586ac17962ab 131
caa45040 0:586ac17962ab 132 }//main