I2C stm32f103

antonx
Offline
Зарегистрирован: 29.12.2019

Здравствуйте.

Эта программа работает на PB6 I PB7
Как сделать чтобы эта программа работала на PB8 и PB9 или на PB10 и PB11 ?
I 2C  сканнер, не находит этих пинов. 
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

//#if (SSD1306_LCDHEIGHT != 64)
#if (SSD1306_LCDHEIGHT != 32)
///#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

int sensorValue = 0;
int voltage = 0;
const int analogInPin = PA7;

void setup()
{
  //PB7 = SDA, PB6 = SCL = 0xC3
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize I2C addr to 0x3C ( for 128x64 Display )

  display.clearDisplay(); // clear the display before starting the program to avoid adafruit splashscreen ( *we can also skip it by modifing header file )

  display.drawPixel(100, 15, WHITE);//to highlight a particular pixel

}

void loop()
{
  display.clearDisplay();
  display.setTextSize(4);
  display.setTextColor(WHITE);
  // display.setCursor(10,15);
  // display.println("POT VALUE");
  sensorValue = analogRead(analogInPin);
  // voltage = map(sensorValue, 0, 1023, 0, 500);
  voltage = map(sensorValue, 0, 1023, 0, 5000);
  // display.setCursor(45,40);
  // display.setCursor(10,15);
  display.setCursor(4, 4);
  display.setCursor(0, 0);
  display.print(voltage);
  display.display();
}

 

 

b707
Offline
Зарегистрирован: 26.05.2017

какой аддон СТМ32 используете?

для пинов PB8 и PB9 ищите что-то на тему I2c remap, а для PB10 11 - I2C2

antonx
Offline
Зарегистрирован: 29.12.2019

До того как  я спросил здесь я это искал, но чистого ответа не  нашел.

Вот что нашел ,

 ///////////////////////////////
    Wire.setSDA(PB11); // using pin name PY_n
    Wire.setSCL(PB10); // using pin number PYn
    Wire.begin();
    //////////////////////////

есть ошибка,

'class TwoWire' has no member named 'setSDA'

 надо что то больше.

 

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

//#if (SSD1306_LCDHEIGHT != 64)
#if (SSD1306_LCDHEIGHT != 32)
///#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

int sensorValue = 0;
int voltage = 0;
const int analogInPin = PA7;

void setup()
{
  ///////////////////////////////
    Wire.setSDA(PB11); // using pin name PY_n
    Wire.setSCL(PB10); // using pin number PYn
    Wire.begin();
    //////////////////////////
  //PB7 = SDA, PB6 = SCL = 0xC3
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize I2C addr to 0x3C ( for 128x64 Display )

  display.clearDisplay(); // clear the display before starting the program to avoid adafruit splashscreen ( *we can also skip it by modifing header file )

  display.drawPixel(100, 15, WHITE);//to highlight a particular pixel

}

void loop()
{
  display.clearDisplay();
  display.setTextSize(4);
  display.setTextColor(WHITE);
  // display.setCursor(10,15);
  // display.println("POT VALUE");
  sensorValue = analogRead(analogInPin);
  // voltage = map(sensorValue, 0, 1023, 0, 500);
  voltage = map(sensorValue, 0, 1023, 0, 5000);
  // display.setCursor(45,40);
  // display.setCursor(10,15);
  display.setCursor(4, 4);
  display.setCursor(0, 0);
  display.print(voltage);
  display.display();
}

 

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Вам ужо ответили.

b707
Offline
Зарегистрирован: 26.05.2017

Это не то, я же сказал, ищите по i2c2 - то есть второй канал i2c

antonx
Offline
Зарегистрирован: 29.12.2019

Вот что я искал;

stm32f103 i2c PB8, stm32f103 i2c PB10 = если кто то использует это в программе гугл находит

stm32f103 I2C2, stm32f103 i2c remapping,

и много похожих, нашел много на разных форум где это обсуждают но никто не дал конкретного ответа  или примера. 

На этом форум тоже искал.

b707
Offline
Зарегистрирован: 26.05.2017

какой такой "конкретный пример" вам нужен, что вы ничего найти не можете??

Почему я открываю гугль и мне сразу вываливается десяток примеров? Вплоть до того, что сам библиотечный код i2c-сканера начинается вот стакого комментария:

#include <Wire.h>

//use IIC2
//TwoWire WIRE2 (2,I2C_FAST_MODE);
//#define Wire WIRE2

Код выше - для аддона Кларка. Какой аддон у вас - вы мне так и не ответили.

 

пипец вообще, ничего найти не могут. Или вы искали, чтоб в примере было написано как добавить эти строчки конкретно в вашу программу? :)

 

antonx
Offline
Зарегистрирован: 29.12.2019

Сканер пробовал = сообщение #1 = I2C  сканнер, не находит этих пинов.

  Почему я открываю гугль и мне сразу вываливается десяток примеров?  = нашел много на разных форум где это обсуждают но никто не дал конкретного ответа  или примера. 

 
antonx
Offline
Зарегистрирован: 29.12.2019

b707 пишет:

 Или вы искали, чтоб в примере было написано как добавить эти строчки конкретно в вашу программу? :)

Любой пример где используют эти пины для подключения LCD , все примеры используют PB6  и PB7 , 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну, если самостоятельно не можете переделать пример, обратитесь в раздел "Ищу исполнителя".

antonx
Offline
Зарегистрирован: 29.12.2019

In this project, I will be using PB7 as SDA and PB6 as SCL. = потому что не знаю как использовать PB10  и PB11 ?

везде PB6,PB7.

https://www.electronicshub.org/how-to-use-i2c-in-stm32f103c8t6/ 

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Для того, чтобы "использовать PB10  и PB11" нужно не искать примеры, а читать дэйташит. Там все написано.

b707
Offline
Зарегистрирован: 26.05.2017

antonx пишет:

Сканер пробовал = сообщение #1 = I2C  сканнер, не находит этих пинов.

вы идиот? какой сканер? Сканер ищет ведомые устройства, а вы настраиваете ведущие пины,блин...
 
И вы так и не написали, какой аддон используете.  Думаю, что у вас совершенно заслуженно ничего не работет, тупицы должны страдать, это справедливость.
 
 
antonx
Offline
Зарегистрирован: 29.12.2019

b707 пишет:

antonx пишет:

Сканер пробовал = сообщение #1 = I2C  сканнер, не находит этих пинов.

вы идиот? какой сканер? Сканер ищет ведомые устройства, а вы настраиваете ведущие пины,блин...
 
И вы так и не написали, какой аддон используете.  Думаю, что у вас совершенно заслуженно ничего не работет, тупицы должны страдать, это справедливость.
 
 

Идиот это Вы ....... Спасибо за помощь ,Сам сделал.

b707
Offline
Зарегистрирован: 26.05.2017

antonx пишет:

Идиот это Вы ....... Спасибо за помощь ,Сам сделал.

как знакомо.

Как получил правильный ответ - теперь можно и огрызнуться, а до того вежливым прикидывался...

"сам сделал" :)))

antonx
Offline
Зарегистрирован: 29.12.2019

Я никого никогда не обижаю пока меня не обижают.

Нет правильного ответа, одни советы без  конкретного решения/премьера 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Вы нам экзамен устраиваете или на работу принимаете, чтобы упрекать в отсутствие ответов и примеров кода?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

antonx пишет:

Нет правильного ответа, одни советы без  конкретного решения/премьера 

Правильный ответ есть. И не один.

А вот примеров, действительно, нет. Точнее, примеры - тоже есть, но Вы ими воспользоваться не умеете. Ну а раз не умеете - либо учитесь, либо платите тому, кто умеет и сделает за Вас.

Ну а если "сам сделал", то это благодаря исключительно пинкам с форума. Так что следовало бы поблагодарить за науку.

b707
Offline
Зарегистрирован: 26.05.2017

antonx пишет:

Нет правильного ответа, одни советы без  конкретного решения/премьера

"Правильный ответ" - это что? Переписать полностью за вас код на другие пины?

На самом деле я даже был готов так и сделать... но я трижды спрашивал, что за аддон СТМ32 вы используете - и трижды вы проигнорировали мой вопрос. Это демонстрирует уровень вашего невежества и невнимательности. Если до вас не доходит, что "конкретный ответ" невозможен без этой информации - то хотя бы спросили, почему я это спрашиваю. Потому что конкретные строчки. которые надо добавить в скетч - для разных аддонов разные.

Вы не в состоянии задать вопрос правильно - поэтому не можете найти ответа ни в гугле, ни на форумах.