Skocz do zawartości

Wlasna biblioteka


romkli

Pomocna odpowiedź

Piszé wlasná biblioteke do moich projektow i z tym zwiazanym mam pytanie:

Czy w preprocesorze mogé porównac z wartoscia zniennej. Moze to brzmi nie zrozumiale, ale daje przyklad:

...

a = 5;

...

#define PIN a

...

#if PIN == 1

...

#endif

#if PIN == 5

...

#endif

...

Wiem, ze powinno to byc:

...

#define PIN 5

...

#if PIN == 1

...

#endif

#if PIN == 5

...

#endif

...

Nigdzie nie moge znalezc w rozwiazaniu mojego problemu

Link do komentarza
Share on other sites

OK. Już rozwiązałem mój problem. W mam zawaloną głowę, więc myślę z pewnym ograniczeniem.

[ Dodano: 25-04-2018, 12:35 ]

Teraz mam inne pytanie. Piszę dwie biblioteki usart i i2c. W nich również dopisuję kondigurację i tu mam problem. W jednej dopisuję:

...
GPIO_InitTypeDef gpio;
I2C_InitTypeDef i2c;
...
gpio.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; // SCL, SDA
gpio.GPIO_Mode = GPIO_Mode_AF_OD;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio);

I2C_StructInit(&i2c);
i2c.I2C_Mode = I2C_Mode_I2C;
i2c.I2C_ClockSpeed = 100000;
I2C_Init(I2C1, &i2c);
I2C_Cmd(I2C1, ENABLE);
...

w drugiej:

...
GPIO_InitTypeDef gpio;
USART_InitTypeDef uart;
...
GPIO_StructInit(&gpio);
gpio.GPIO_Pin = GPIO_Pin_2;
gpio.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &gpio);

gpio.GPIO_Pin = GPIO_Pin_3;
gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &gpio);

USART_StructInit(&uart);
uart.USART_BaudRate = 115200;
USART_Init(USART2, &uart);
USART_Cmd(USART2, ENABLE);
...

i tu mam problem, bo program nie startuje. Jak zmienię i całą konfiguracje mam w main

...
GPIO_InitTypeDef gpio;
I2C_InitTypeDef i2c;
USART_InitTypeDef uart
...
GPIO_StructInit(&gpio);
gpio.GPIO_Pin = GPIO_Pin_2;
gpio.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &gpio);

gpio.GPIO_Pin = GPIO_Pin_3;
gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &gpio);

USART_StructInit(&uart);
uart.USART_BaudRate = 115200;
USART_Init(USART2, &uart);
USART_Cmd(USART2, ENABLE);

gpio.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; // SCL, SDA
gpio.GPIO_Mode = GPIO_Mode_AF_OD;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &gpio);

I2C_StructInit(&i2c);
i2c.I2C_Mode = I2C_Mode_I2C;
i2c.I2C_ClockSpeed = 100000;
I2C_Init(I2C1, &i2c);
I2C_Cmd(I2C1, ENABLE);
...

wszystko jest ok.

[ Dodano: 25-04-2018, 20:30 ]

Kolejny problem rozwiazany.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.