stm32l010 oled hal
Dependencies: SMALL_HAL_SSD1308_128x64_I2C mbed
main.cpp@0:1aba40096cb1, 2022-08-05 (annotated)
- Committer:
- caa45040
- Date:
- Fri Aug 05 06:17:37 2022 +0000
- Revision:
- 0:1aba40096cb1
stm32l010 oled hal
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caa45040 | 0:1aba40096cb1 | 1 | |
caa45040 | 0:1aba40096cb1 | 2 | //HAL_oled_16x24_010_1 |
caa45040 | 0:1aba40096cb1 | 3 | |
caa45040 | 0:1aba40096cb1 | 4 | |
caa45040 | 0:1aba40096cb1 | 5 | #include "mbed.h" |
caa45040 | 0:1aba40096cb1 | 6 | #include "SSD1308.h" |
caa45040 | 0:1aba40096cb1 | 7 | |
caa45040 | 0:1aba40096cb1 | 8 | |
caa45040 | 0:1aba40096cb1 | 9 | #define ADDR (0x70<<1) // address |
caa45040 | 0:1aba40096cb1 | 10 | |
caa45040 | 0:1aba40096cb1 | 11 | int main() { |
caa45040 | 0:1aba40096cb1 | 12 | |
caa45040 | 0:1aba40096cb1 | 13 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
caa45040 | 0:1aba40096cb1 | 14 | |
caa45040 | 0:1aba40096cb1 | 15 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
caa45040 | 0:1aba40096cb1 | 16 | |
caa45040 | 0:1aba40096cb1 | 17 | GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; |
caa45040 | 0:1aba40096cb1 | 18 | GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; |
caa45040 | 0:1aba40096cb1 | 19 | GPIO_InitStruct.Pull = GPIO_PULLUP; |
caa45040 | 0:1aba40096cb1 | 20 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; |
caa45040 | 0:1aba40096cb1 | 21 | GPIO_InitStruct.Alternate = GPIO_AF1_I2C1; |
caa45040 | 0:1aba40096cb1 | 22 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
caa45040 | 0:1aba40096cb1 | 23 | |
caa45040 | 0:1aba40096cb1 | 24 | GPIO_InitStruct.Pin = GPIO_PIN_4; |
caa45040 | 0:1aba40096cb1 | 25 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
caa45040 | 0:1aba40096cb1 | 26 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
caa45040 | 0:1aba40096cb1 | 27 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
caa45040 | 0:1aba40096cb1 | 28 | HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); |
caa45040 | 0:1aba40096cb1 | 29 | |
caa45040 | 0:1aba40096cb1 | 30 | __HAL_RCC_I2C1_CLK_ENABLE(); |
caa45040 | 0:1aba40096cb1 | 31 | |
caa45040 | 0:1aba40096cb1 | 32 | |
caa45040 | 0:1aba40096cb1 | 33 | I2C_HandleTypeDef hi2c1; |
caa45040 | 0:1aba40096cb1 | 34 | |
caa45040 | 0:1aba40096cb1 | 35 | hi2c1.Instance = I2C1; |
caa45040 | 0:1aba40096cb1 | 36 | hi2c1.Init.Timing = 0x00000708; |
caa45040 | 0:1aba40096cb1 | 37 | hi2c1.Init.OwnAddress1 = 0; |
caa45040 | 0:1aba40096cb1 | 38 | hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; |
caa45040 | 0:1aba40096cb1 | 39 | hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; |
caa45040 | 0:1aba40096cb1 | 40 | hi2c1.Init.OwnAddress2 = 0; |
caa45040 | 0:1aba40096cb1 | 41 | hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK; |
caa45040 | 0:1aba40096cb1 | 42 | hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; |
caa45040 | 0:1aba40096cb1 | 43 | hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; |
caa45040 | 0:1aba40096cb1 | 44 | HAL_I2C_Init(&hi2c1); |
caa45040 | 0:1aba40096cb1 | 45 | |
caa45040 | 0:1aba40096cb1 | 46 | HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE); |
caa45040 | 0:1aba40096cb1 | 47 | |
caa45040 | 0:1aba40096cb1 | 48 | HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0); |
caa45040 | 0:1aba40096cb1 | 49 | |
caa45040 | 0:1aba40096cb1 | 50 | |
caa45040 | 0:1aba40096cb1 | 51 | wait_ms(200); |
caa45040 | 0:1aba40096cb1 | 52 | |
caa45040 | 0:1aba40096cb1 | 53 | |
caa45040 | 0:1aba40096cb1 | 54 | SSD1308 oled = SSD1308( &hi2c1 , SSD1308_SA0); |
caa45040 | 0:1aba40096cb1 | 55 | //SSD1308 oled = SSD1308( &hi2c1 , ADDR); |
caa45040 | 0:1aba40096cb1 | 56 | |
caa45040 | 0:1aba40096cb1 | 57 | |
caa45040 | 0:1aba40096cb1 | 58 | |
caa45040 | 0:1aba40096cb1 | 59 | //char n1_8[] = "12345678"; |
caa45040 | 0:1aba40096cb1 | 60 | char n1_8[] = "87654321"; |
caa45040 | 0:1aba40096cb1 | 61 | //char n1_8[] = "88888888"; |
caa45040 | 0:1aba40096cb1 | 62 | |
caa45040 | 0:1aba40096cb1 | 63 | int ii=0; |
caa45040 | 0:1aba40096cb1 | 64 | for(int nn=0; nn<8; nn++) { |
caa45040 | 0:1aba40096cb1 | 65 | // y x |
caa45040 | 0:1aba40096cb1 | 66 | oled.writeBigChar(0, ii*16,n1_8[nn]); |
caa45040 | 0:1aba40096cb1 | 67 | ii = ii + 1; |
caa45040 | 0:1aba40096cb1 | 68 | } //for |
caa45040 | 0:1aba40096cb1 | 69 | //pc.printf("Printed something\r\n"); |
caa45040 | 0:1aba40096cb1 | 70 | // printf("Printed something\r\n"); |
caa45040 | 0:1aba40096cb1 | 71 | |
caa45040 | 0:1aba40096cb1 | 72 | //oled.writeString(0, 0, "Hello World !"); |
caa45040 | 0:1aba40096cb1 | 73 | |
caa45040 | 0:1aba40096cb1 | 74 | |
caa45040 | 0:1aba40096cb1 | 75 | |
caa45040 | 0:1aba40096cb1 | 76 | |
caa45040 | 0:1aba40096cb1 | 77 | |
caa45040 | 0:1aba40096cb1 | 78 | |
caa45040 | 0:1aba40096cb1 | 79 | |
caa45040 | 0:1aba40096cb1 | 80 | }//main |
caa45040 | 0:1aba40096cb1 | 81 | |
caa45040 | 0:1aba40096cb1 | 82 | |
caa45040 | 0:1aba40096cb1 | 83 | |
caa45040 | 0:1aba40096cb1 | 84 | |
caa45040 | 0:1aba40096cb1 | 85 | //容量削減 |
caa45040 | 0:1aba40096cb1 | 86 | void error(const char* format, ...) {} |
caa45040 | 0:1aba40096cb1 | 87 | |
caa45040 | 0:1aba40096cb1 | 88 | |
caa45040 | 0:1aba40096cb1 | 89 | |
caa45040 | 0:1aba40096cb1 | 90 |