18.09.2016, 16:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
|
|
|
Сказали "Спасибо" AR_Favorit
|
|
|
18.09.2016, 16:12
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,411
Сказал спасибо: 176
Сказали Спасибо 3,128 раз(а) в 2,017 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Сообщение от STM32F0
|
А мне что, за вас ещё и думать? А может и зарплату за вас получать?
|
ладно дядя. хочешь быть неадекватом - будь им.
я тебе говорю - хватит оскорблений а ты наоборот это воспринимаешь так что оскорблений еще больше начинаешь писать.
удачи тебе и побольше здоровья.
__________________
кагмаподэ магмаподэ
|
|
|
|
18.09.2016, 16:21
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Сообщение от индюк
|
удачи тебе и побольше здоровья.
|
Спасибо! Взаимно!
|
|
|
|
18.09.2016, 16:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Сообщение от индюк
|
я бы написал delay2
|
Каждому - своё.
Двумя работами назад (уже можно сказать тремя), коллегам очень нравилось у меня на компе название папки "Фсьо"...
|
|
|
|
18.09.2016, 16:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Сообщение от omercury
|
Каждому - своё.
|
Точно, я написал бы mydelay, и было бы тоже классно
|
|
|
|
18.09.2016, 16:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
|
|
|
|
18.09.2016, 16:48
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
__________________
Осторожно , злой кот
|
|
|
|
19.09.2016, 21:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Появилось несколько вопросов. Переделываю библиотеку с 10х на 030. Есть непонятки с регистрами.
Тут правильная замена?
PHP код:
|
/* Enable ack if we select it */ if (ack) { I2Cx-›CR2 |= I2C_CR2_NACK;//I2Cx-›CR1 |= I2C_CR1_ACK; - так было для 10х }
/* Send write/read bit */ if (direction == I2C_TRANSMITTER_MODE) { /* Send address with zero last bit */ I2C1-›TXDR = (uint8_t) (address››8); /* Byte to send *///I2Cx-›DR = address & ~I2C_OAR1_ADD0; /* Wait till finished */ ssd1306_I2C_Timeout = ssd1306_I2C_TIMEOUT; while (!(I2Cx-›ISR & I2C_ISR_ADDR)) {//while (!(I2Cx-›SR1 & I2C_SR1_ADDR)) { if (--ssd1306_I2C_Timeout == 0x00) { return 1; } } } if (direction == I2C_RECEIVER_MODE) { /* Send address with 1 last bit */ I2C1-›TXDR = (uint8_t) ((address|1)››8);//I2Cx-›DR = address | I2C_OAR1_ADD0; /* Wait till finished */ ssd1306_I2C_Timeout = ssd1306_I2C_TIMEOUT; while (!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) { //чем это можно заменить? I2C_CheckEvent, что оно проверяет? if (--ssd1306_I2C_Timeout == 0x00) { return 1; } } }
/* Read status register to clear ADDR flag */ I2Cx-›SR2; // тут его читают и всё? мне тогда надо читать I2C_IСR регистр, чтобы очистить флаг ADDR?
|
что это за бит в регистре статуса ? - I2Cx-›SR1 & I2C_SR1_BTF.
PHP код:
|
while (((!(I2Cx-›SR1 & I2C_SR1_TXE)) || (!(I2Cx-›SR1 & I2C_SR1_BTF)))) { if (--ssd1306_I2C_Timeout == 0x00) { return 1; } }
|
I2Cx-›SR1 & I2C_SR1_TXE меняю на это I2Cx-›ISR & I2C_ISR_TXE. А то второе что значит?
Вычитал Bit Transfer Complite. Значит его можно убрать...
Последний раз редактировалось miwutka; 19.09.2016 в 22:48.
|
|
|
|
20.09.2016, 23:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Сообщение от Zoosman
|
Вот, пожалуйста.
За ХАЛ, сильно не пинайте.
|
прошил - не работает чегото... Экран питать надо от 3 вольт или 5? Я от 3.3 запитал. Осциллограф еще не подключал...
Похоже этот экран на столько не ходовой что никто не пишет в теме по теме ))
|
|
|
|
21.09.2016, 01:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Я так понимаю в дисплей нужно только передавать биты.
Значит можно использовать функцию написанную для еепрома? Только поставить адрес EEPROM_OWN_ADDRESS 0х78, который у дисплея...
PHP код:
|
uint8_t eeprom_read(uint16_t address)
{
uint8_t temp=0;
I2C1-›CR2 = (2‹‹16) | (EEPROM_OWN_ADDRESS‹‹1);//2 байта на передачу и сдвигаем адрес на один влево для 7-битного режима адреса
while (!(I2C1-›ISR & I2C_ISR_TXE) );
I2C1-›TXDR = (uint8_t) (address››8); /* Byte to send */
I2C1-›CR2 |= I2C_CR2_START; /* Go */
while (!(I2C1-›ISR & I2C_ISR_TXIS) );
I2C1-›TXDR = (uint8_t)(address &0x00FF); /* Byte to send */
while (!(I2C1-›ISR & I2C_ISR_TC) ){};
I2C1-›CR2 = I2C_CR2_AUTOEND |
(1‹‹16) |
(EEPROM_OWN_ADDRESS‹‹1) |
I2C_CR2_RD_WRN |
I2C_CR2_NACK;
I2C1-›CR2 |= I2C_CR2_START; /* Go */
while (!(I2C1-›ISR & I2C_ISR_RXNE) ){};
temp = I2C1-›RXDR ;
return temp;
}
|
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:53.
|
|