GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_I2C1); GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_I2C1); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; Teraz można...
Na stronie 154 jest taka cudna tabelka: I2C pinout-----------------Configuration----... configuration I2Cx_SCL-----------------I2C clock------------------Alternate function open drain I2Cx_SDA-----------------I2C Data I/O--------------Alternate function open drain Eh, ile ja jeszcze razy zobaczę tu tą bibliotekę :/ Lepiej jest napisać po...
A jak wygląda sprawa z rezystorami podciągającymi? Jak rozumiem, skoro masz GPIO jako Open Drain to są zewnętrzne. W nocie aplikacyjnej (w moim przypadku Ziloga) jest napisane że n ie trzeba już wprost ustawiać portów jako wejścia czy wyjścia. W jaki sposób chcesz wymusić stan niski na linii nie zmieniając GPIO na wyjście?
Cześć Może ktoś będzie potrafił wyjaśnić moje wątpliwości w sprawie trybu open-drain w kontrolerach AT32UC3A. Otóż, w dokumencie Each I/O line of the GPIO features: ... Open Drain mode enabling sharing of an I/O line between the MCU and external components. Następnie (24.2): To enable the TWI, the programmer must perform the following steps: Program...
Cześć, mam pytanie, czy używał ktoś z was może wyjścia open-drain w STMie? problem jest taki, że potrzebuję sterować ukłądem na 5V, STM na GPIO ma 3V. Pomyślałem że zrobie to wykorzystując open-drain i zewnętrzny pullup przez rezystor 4.7k. Jednak to nie działa, jak podpinam pod nóżki STMa, jakby nie było tego stanu "floating" tylko były 3V. Ma ktoś...
Przerobiłem podaną przez Ciebie funkcję bo nie mam odpowiedniej biblioteki na zastosowane skróty, usunąłem także bufor - narazie chcę wysłać 1 bajt. Opisałem komentarzami funkcję inicjującą I2C. Niestety dalej się zapętla - będę próbował jeszcze podłączyć coś innego. Póki co proszę o sprawdzenie poprawności kodu i ew. wskazanie błędu. Funkcja inicjująca:...
Przyjrzałem się procedurom i co w sumie kryje się za GPIO_WriteBit() ? Prawidłowo, to powinno być podciągnięte do 5V, bo taki poziom sygnałów akceptuje LCD. Po drugie GPIO ustaw w tryb open drain a nie push-pull. Po trzecie nie widzę powodu, aby się nie dało czytać LCD, wiec RW jak najbardziej można podłączyć. P.S. Nie wyobrażam sobie docelowej aplikacji...
Schemat jest prawidłowy, więc raczej nie to jest przyczyną błędów. Nawet jeśli moduł ma flash 4M to powinno zadziałac jeśli wgra się wersję 1M, odwrotnie mogą byc już jakieś problemy. W sprawie wyboru GPIO, jeśli jest firmware nodemcu na stronie jest taka adnotacja: Ale nie wiem czy to tylko to firmware tak ma, czy może to jakieś ograniczenia ESP8266...
Powiedz mi "ekrzychoooo" bo widzę że kumasz te wyświetlacze. Czy wersje z GPIO są 3,3V czy 5v? 0-pull up input, 1-input binding, 2-push pull output, 3-PWM output, 4-open drain output. Druga sprawa dlaczego jak ustawię w trybie 4 blokuje mi już włączenie na innej stronie? I jeszcze takie małe pytanie początkującego czy można podłączyć do tych portów...
Już to kilka razy wrzucałem, ale u siebie mam tak: [syntax=C] io_pin_cfg(SDA_GPIO, SDA_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SDA - alt output, open-drain, 10M io_pin_cfg(SCL_GPIO, SCL_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SCL - alt output, open-drain, 10M...
Ok, zajrzałem do tego i przeoczyłeś kilka rzeczy: Adres to nie 0x4A tylko 0x94. Właściwie jest to 0x4A przesunięte o 1 bit w lewo (0x94) a ten LSB to jest bit R/!W. Czyli jak chcesz coś zapisać do kontrolera to trzeba wysyłać na adres 0x94, a jak czytać to 0x95 (czytać noty dokładnie! Poza tym jest to na schemacie napisane). Druga sprawa - kontroler...
W ramach nauki próbuje uruchomić akcelerometr przez interfejs I2C. Wspomniany układ to LSI302DL. W celu wyboru interfejsu I2C należało : pin CS ustawić w stan wysoki - PE3 pin SDO podciągnąć do VCC lub GND - możliwość wyboru 2 adresów (ja wybrałem GND) po wyżej wymienionych operacjach adres urządzenia to read 0x39 write 0x38 Zegar działa z prędkością...
Oto kod, który chcę uruchomić. Błędy w załączniku: [syntax=c] /** ****************************************... * (at)file main.c * (at)author Ac6 * (at)version V1.0 * (at)date 01-December-2013 * (at)brief Default main function. ****************************************... */ #include...
O faktycznie, ale niestety to nie to. Z resztą to jest kod na szybko spisany na discovery. Docelowo używany jest stm32f107, tam konfiguracja wygląda tak [syntax=c] void ExAdcConfig(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP... ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2... ENABLE); GPIO_InitStruct.GPIO_Pin...
Witam od dwóch dni staram się uruchmić I2C na stm32f0. W tym celu przygotowałem funkcję inicjalizującą void initI2C(){ //PB6 - SCL I2C_2 //PB7 - SDa I2C_2 uint8_t PRESC,SCLL,SCLH,SDADEL,SCLDEL; RCC->AHBENR |= RCC_AHBENR_GPIOBEN ; //enable clock for port B RCC->APB1ENR |= RCC_APB1ENR_I2C1EN; //enable I2C clock GPIOB->MODER |= GPIO_MODER_MODER6_1...
Witam serdecznie, Robię hexapoda 18xservo, wykorzystuję do tego niezależne kanały TIM2,3,4,5 i TIM12. Napotkałem problem z kanałem 2 i 3 dla TIM5, nie działa. Żeby nie wrzucać całego programu i nie zaburzać czytelności, przygotowałem mini aplikację testową dla TIM5 PWM, podobnie channel 1 i 4 działa, channel 2 i 3 nie działa. Czy dla pinów PA1 i PA2...
U siebie I2C konfiguruje tak: io_pin_cfg(SDA_GPIO, SDA_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_... GPIO_CRx_CNF_ALT_OD_value));// SDA - alt output, open-drain, 10M io_pin_cfg(SCL_GPIO, SCL_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_... GPIO_CRx_CNF_ALT_OD_value));// SCL - alt output, open-drain, 10M...
W manualu jest napisane dla wersji 302: • Power profiles with lower power consumption in Active and Sleep modes. • Internal pull-up resistors pull up pins to full VDD level. • Programmable pseudo open-drain mode for GPIO pins. • WWDT with clock source lock capability. Moim zdaniem najważniejsze to: - pull up do Vdd, w 301 czasami...
1. Co robią funkcje GPIO_PinAFConfig(...); i dlaczego samo GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; nie starcza? Otóż w procesorach serii F1 nie ma konieczności osobnego podłączania funkcji alternatywnych - samo GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_xxxx; wystarcza. Natomiast seria procesorów F4 jest nieco bardziej zaawansowana i złożona -...
To znaczy? Jak to miałoby wyglądać? Zaglądnij do tzw. "poradnika Szczywronka", znajdziesz tam przykłady takich funkcji, łącznie z definicjami. Sam dla F4 korzystam z takich: [syntax=c] typedef enum { /* Push-Pull; Low, Medium, Full, High Speed. */ gpio_mode_output_PP_LS = 512, gpio_mode_output_PP_MS = 576, gpio_mode_output_PP_FS = 640, gpio_mode_output_PP_HS...
Witam, mam problem z odbieraniem danych przez i2c z użyciem mikrokontrolera stm32f103. Sytuacja wygląda tak, że potrafię przesyłać dane po i2c, (wysyłam adres, czujnik odpowiada, wysyłam mu komendę wykonania pomiaru, wiem że go wykonuję ponieważ wtedy "mruga" diodą), niestety mam problem z odbieraniem danych. Testowałem już wiele funkcji z sieci, ale...
Nowa wersja Poradnika gotowa do pobierania. Najważniejsze zmiany: - poprawiony rysunek pokazujący wyjścia w konfiguracji push-pull/open-drain - natchniony Reference Manualach ST zmieniło nazwy "prędkości" wyjść GPIO (zrobili High Speed i Very High Speed zamiast Fast Speed i High Speed ) - nowe nazwy zostały uwzględnione w Poradniku - w przykładowych...
Poszedłem na aliexpress i kupiłem parę płytek. Klawiatura matrycowa 4x3 , moduł I2C wraz z HD44780 , płytka z ledkami rgb wykorzystam czerwona i zieloną a żeby nie projektować dać robić płytki i babrać się z lutowaniem elementów smd i innych maleństw kupiłem i mam już w domu NUCLEOF108RB tylko zero opisu a z angielskim kuleje. A co do matrycy klawiszy...
W ten sposób tylko skonfigurowałeś pin jako wejście z podciąganiem, a stan został 0, bo po resecie rejestr GPIOB->ODR jest domyślnie = 0. Żeby wymuszać stany można zdefiniować sobie proste funkcje: Teraz widzę, że dałem plamę :) Autor pyta o tryb wejściowy, a ja wymądrzałem się z trybem wyjściowym :) Wg mnie wszystko wskazuje, że "gpio_pin_cfg"...
Witam, Czy korzystać z firmowych bibliotek stlib? Jeżeli mają ułatwić Ci pracę to bym używał. Kilka plusów bym bibliotekom nie odmówił: - standaryzacja kodu - łatwiej się połapać w czyimś kodzie (np. pobrany przykład); w przypadku bibliotek użyte są w niemal każdym przypadku standardowe nazwy stałych; przy braku bibliotek również, ale często spotykamy...
Hmm, a może Ty byś pokazał kawałek kodu, który napisałeś? Nie wiem czy korzystasz z rejestrów czy SPL'a, ale wrzucam kawałek kodu dla SPL - sprawdzony w realu. [syntax=c] /** ****************************************... * (at)file Project/STM32F4xx_StdPeriph_Templates/ma... * (at)author MCD Application Team * (at)version...
To "How to use" z biblioteki stm32f4xx_gpio.c: GPIO_InitStructure.GPIO_Mode czy co się dzieje?
Na pierwszy rzut oka w Twoim kodzie, jak i u autora, nie ma żadnej manipulacji trybem wyjścia portu - pinu. Taka funkcja: [syntax=c] //funkcja odbierajıca pojedynczy bit od termometru uint16_t DS18B20_ReadBit(void) { uint16_t bit=0; GPIO_ResetBits(GPIOB, GPIO_Pin_0); delay_us(5); GPIO_SetBits(GPIOB, GPIO_Pin_0); delay_us(5); if(GPIO_ReadInputDataBit(GPIOB,...
Witam, próbuję napisać odczyt wartości z akcelerometru MMA8451 z płytką STM32F4Discovery w środowisku CooCox 1.7.8. Interfejs komunikacyjny jest to I2C. Adresu slave'a jestem pewien (sprawdziłem pod RPi2 i wykryło mi go poprawnie) aczkolwiek nie wiem czy dobrze zinterpretowałem notę katalogową odnośnie sposobu odczytu. Poniżej zamieszczam też mój kod:...
Cześć. Nie wiem dlaczego uc zawiesza się na czekaniu na zakonczenie generowania startu chodzi o I2C 3 https://obrazki.elektroda.pl/9115828100_... Inicjalizacja I2C [syntax=c]void i2c_init(void){ RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOCEN; RCC->APB1ENR |= RCC_APB1ENR_SPI3EN; GPIOA->MODER |= GPIO_MODER_MODE8_1;...
Witam, Zdarzyłem prześledzić wszystkie tematy związane z problemem startu jednak rozwiązania nie znalazłem, dlatego postanowiłem założyć nowy watek. while(!(I2C1->SR1 & I2C_SR1_SB)); Na liniach SCL/SDA mam rezystory podciągające 10k. Będę bardzo wdzięczny za wskazanie źródła błędu. Pozdrawiam.
Używając peryferium zawsze stosujemy funkcje alternatywną. Dla wyjść jeśli nie jest wymagane open drain stosujmy pushpull. W przypadku wejścia podciąganie włączamy w razie konieczności. F4 nie ma remapowania peryferiów. Po prostu ustawiamy wybrany pin który umożliwia podłączenie do danego peryferium.
Mam jeszcze do tego pytanie - jak wybieram dany pin jako alternate function to chyba muszę jeszcze wybrać którą z alternatywnych funkcji przydzielam temu pinowi. Bo w moim przypadku piny mają więcej niż jedną funkcję alternatywną. Nie wiem w którym rejestrze się to ustawia. Może ktoś wie? ktoś kto nie używa bibliotek ? A dokładniej - potrzebuję użyć...
DS ESP8266 https://nurdspace.nl/images/e/e0/ESP8266... 8.4.2 General Purpose IO There are up to 16 GPIO pins. They can be assigned to various functions by the firmware. Each GPIO can be configured with internal pull-up/down, input available for sampling by a software register, input triggering an edge or level CPU interrupt,...
Trzeba wypelnic strukture platform_data ktora wyglada nastepujaco struct w1_gpio_platform_data { unsigned int pin; unsigned int is_open_drain:1; void (*enable_external_pullup)(in... enable); }; i przekazac ja do odpowiednio stworzonego platform_device. Co do komunikacji to mozna poprzez sysfs albo netlink.
gpio.GPIO_OType = GPIO_OType_PP; gpio.GPIO_Mode = GPIO_Mode_OUT; No nie problem tylko udogodnienie. Na AVR nie możesz sobie pinu zrobić open drain ani zrobić np. pull-down. Jak to napisał kol. (at)Marek_Skalski przestań patrzeć na rózne biblioteki tylko przeczytaj dokumentację. To się wtedy dowiesz co to jest. Dodano po 5 16bitowe No jeżeli 16 bitowe...
Włąśnie jestem w rozdziale o systick. Według mnie zmiana stanu diody powinna odbywać się co 1 sekundę a odbywa się szybciej. Nie zmieniałem taktowania procesora czyli w przypadku mojej płytki Nucleo F103rb powinna działać na 8 MHz. https://obrazki.elektroda.pl/8575770400_... [syntax=c]#include "stm32f10x.h" int main(void) { RCC->APB2ENR...
Jak w temacie, od dłuższego czasu nie mogę sobie poradzić z skonfigurowaniem DCMI tak by na rejestrze DCMI->DR pojawiły się dane. Próbuję pobrać obraz z kamery MT9D111. Wszelkie próby nawet z DMA ( którego nie chcę na razie używać ) kończyły się fiaskiem, więc proszę o pomoc kogoś kto zna odpowiedź na moje pytanie. Układ realizowany jest w oparciu...
(at)tadzik85 to jest moja inicjalizacja : [syntax=c] void init_USART6(){ GPIO_InitTypeDef GPIO6_InitStruct; // this is for the GPIO pins used as TX and RX USART_InitTypeDef USART6_InitStruct; // this is for the USART6 initilization NVIC_InitTypeDef NVIC6_InitStructure; // this is used to configure the NVIC (nested vector interrupt controller) RCC_APB2PeriphClockCmd(RCC_APB2Periph_US...
Chyba nie bardzo rozumiem ustawienia portów w tych procesorach. Ustawienie jako wyjście typu PP (Push-Pull) wymusza na wyjściu zarówno '1' jak i '0'. Więc co znaczy wyjście typu PP-PULL_UP, PP_PULL_DOWN? Przecież wyjścia typu PP nie podciąga się do plusa lub masy.... Tak samo typ OD, czyli Open Drain - ten typ wymusza jedynie '0', więc ma sens włączenie...
Tu masz "fajny" zapis [syntax=c]SPLC_CONTROL_PORT->CRH &= 0x000000F0; SPLC_CONTROL_PORT->CRH |= 0x00000030;[/syntax] Po kolei: po resecie CRH=0x4444 4444 po AND: 0x4444 4444 & 0x0000 00F0 = 0x0000 0040 po OR: 0x0000 0040 | 0x0000 0030 = 0x0000 0070 Czyli: General purpose output Open-drain + Output mode, max speed 50 MHz. (dla niezerowej tetrady, reszta...
Witam, chciałem się poradzić wyjadaczy (albo każdego kto się zna i może coś doradzić) od STM32F103 nt. wydajnej obsługi portów na tym procku. Nie pisałem dużo rzeczy na te procki a już szczególnie nie takie które wymagały świetnej wydajności. Teraz bardzo zależy mi na tym, zarówno na obsłudze portów typu (odczytaj port/zapisz na port, odczytaj/zapisz...
W efekcie wykonania kodu oczekiwałem zapalenia się na biało całego wyświetlacza. Wykorzystałem jedno wyprowadzenie testowe które ustawiam w ostatniej linii kodu celem sprawdzenia czy nie następuje zawieszenie na którejś z flag od I2C. Kod nie wykonuje się w całości wobec tego przypuszczam, że jest coś nie tak z konfiguracją samego I2C bądź sprawdzam...
Z tego co poczytałem oscylator jest wyłączony, zresztą ze zdjęcia które załączyłem wynika że po resecie te piny są domyślnie ustawione jako GPIO. Pinami da się normalnie sterować tylko na 5V nie działa poprawnie(tzn działa ale napięcie max 4V i pobiera prąd). Na 3V3 działa ok(jest pełne napięcie ) więc dorobiłem na pająku sterowanie po 3V3. Małe sprostowanie...
Cześć, Kilka dni próbuję coś zapisać jak i odczytać z eeprom at24c256. Problem polega na tym że program zatrzymuję się na [syntax=c]while (!(I2C1->SR1 &(SR1_ADDR))){}[/syntax] w funkcji i2c1_burst_write. Sprawdzałem rejestr DR i adres jest dobry. Pamięć eeprom ma adres 0x50 sprawdzałem skanerem i2c. Dodałem nawet przerwy czasowe pomiędzy inicjalizacja,...
Witam wszystkich! :) Mam parę małych pytań początkującego odnośnie GPIO oraz JTAG w procesorze STM32L152RET6, na którym zaczynam właśnie naukę 32-bitowców. Próbując ustawić GPIO w stan wysoki zauważyłem kompletny brak reakcji na wartości wpisywane do rejestrów. Poprawcie mnie jeśli się mylę, ale po wielu godzinach z dokumentacjami wywnioskowałem, że...
Witam, Napotkałem ostrzeżenie przy kompilacji kodu: [syntax=csharp]#include "stm32f10x.h" int main(void) { RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; //Wlaczenie zegara portu A /*dioda*/ GPIOA->CRL |= GPIO_CRL_MODE5_1; //Wyjscie 2MHz GPIOA->CRL &= ~GPIO_CRL_CNF5_0; //Open-drain SysTick_Config(4000000); while(1) { }/*while*/ }/*main*/ __attribute__((interrupt))...
Mam 3 czujniki typu MEMS podłączone do szyny i2c. Szyna jest podciągana przez rezystory 10k. Problemem jest to, że na 99 na 100 przypadków transmisja na i2c nr 2 w stm32f407 się zawiesza po wpisaniu flagi START. Flaga BUSY w SR2 jest ustawiona przed ustawienieniem START więc program czeka i czeka... Próbowałem już z 5 różnych kodów i ich kombinacji...
Witam, Program który chcę stworzyć jest częścią projektu budowy komputera, jednakże z braku obycia w programowaniu zadanie to okazało się trudniejsze niż zakładałem. 'Mój' program stworzyłem przy pomocy paru źródeł oraz dzięki mniej lub bardziej udanej próbie zrumienia jak 'działa' programowanie. Oryginalnie chciałem aby, 6 pinów przy pomocy przełączników...
Witam Używam płytki STM32F4 Discovery. Muszę odczytać sporą ilość danych, więc UART wydaje się jedynym rozsądnym rozwiązaniem. Poniżej kod, którego używam (sugerowałem się kodami z różnych stron). [syntax=c]#include "stm32f4xx.h" #include "stm32f4_discovery.h" #include "misc.h" // I recommend you have a look at these in the ST firmware folder #include...
0 - wejście 1 - wyjście 2 - funkcja alternatywna 3 - wejście analogowe Nie jest to precyzyjne. wartość 3 oznacza, że to będzie pin analogowy, a czy to będzie wejście czy wyjście zależy od tego jakie peryferium do tego podłączymy (np. ADC - wejście, DAC -wyjście). Więc jak za pomocą tego ustawić pin jako wejście/wyjście ? Pin nie może być zarazem wejściem...
Nie neguję dokumentacji. Nawet więcej, nigdy nie odpalam bez niej. Nawet gotowca konfrontuję z datasheetem. Po prostu mi chodzi że z przykładem jest prościej i szybciej. Nie ma co popadać w skrajności. Czyli też w uruchamianie wyłącznie na podstawie datasheeta. Bo czas też kosztuje. I szkoda na nowo odkrywać koło. Niektórych rzeczy wręcz bym nie odpalił...
Dzięki wielkie za odpowiedz. Chciałbym ciebie zapytać bo dla mnie kilka spraw nadal tutaj jest nie jasnych. Zapis 0x90 to jest 144(dec) a na 7 bitach z tego co pamiętam mozna zapisać max 127(dec) więc to jest pierwsza sprawa, która mi już nie gra.No ale np. wpisując wartość write na 0x90 do kodu: #define I2CWRITE 0b1001000 #define I2CREAD 0b100101 #define...
Witam Zaczynam czytać dokumentację do Atmeg i konfiguracji portów robić nie musisz ponieważ w dokumentacji jest napisane że w przypadku TWEN w rejestrze TWCR to piny komunikacyjne zostaną automatycznie przekonfigurowane do pracy z TWI i odłączone od standardowego GPIO. Można o tym przeczytać w datasheet w sekcji Alternate function GPIO. cyt: [quote]•...
No dobra, o tych podstawach już przeczytałem wcześniej. Bardziej chodzi mi o konkretną implementację tej magistrali. W chwili obecnej mam kod, który inicjalizuje magistralę. Próbuję połączyć się z akcelerometrem na płytce STM32f4. Przy debugowaniu, zatrzymuje się na fladze BUSY, czyli zajętej magistrali. Dodatkowo wyświetlany jest warning o tym, że...
Witam, mam problem z komunikacją z czujnikiem ciśnienia HP02S. Szukałem swojego problemu na forum, ale nie znalazłem. Udało mi się bez problemu odczytać dane z EEPROMu. Udało mi się też skomunikować z czujnikiem, ale do czasu. Sekwencja odczytu ciśnienia wygląda następująco (pseudokod): [syntax=c] i2c_start(); i2c_write(0xEE); i2c_write(0xFF); i2c_write(0xF0);...
Witam. Właśnie próbuję napisać obsługę hd44780 ale mam problem że funckaj delay_ms nie odlicza odpowiednio czasu. Stm32 podłaczony do kwarcu 8 MHz i taktowane na 72Mhz. Proszę o wskazanie w czym jest problem, oczywiście dalej sam będę poszukiwał problemu. Pozdrawiam https://obrazki.elektroda.pl/1550611200_...
Witam, Po uruchomieniu trzech interfejsów RS232 w STM32f103rb przyszedł czas na RS232 w STM32f407 i odrazu problem. Zrobiłem konfigurację USARTA i wysyłam w pętli znak 'a' a otrzymuję jakieś E z indeksem dolnym 1. Konfiguracja : [syntax=c] void init_USART1(){ /* This is a concept that has to do with the libraries provided by ST * to make development...
Witam, modyfikuję bibliotekę pod klawiaturę matrycową 4x4. W funkcji "Keypad4x4_ChangeColomn" dla określonego warunku należy zmieniać ustawienia pinów z PushPull na Oped Drain. Wszystko funkcjonuje dobrze : dla pierwszego warunku "if(colNum_0_to_3==0)" bity w rejestrze zostają ustawione poprawnie, jednak dla kolejnych warunków pozostają one bez zmian,...
Witam, Po paru dniach ślęczenia udało mi się - tak myślę :) , skonfigurować rcc na 72MHz. : void rcc_init(void) //RCC init włączający procesor na 72MHz { RCC->CR|=0x1; //wlacz HSI wewnętrzny oscylator, włączany jako pierwszy po zasilaniu. while(!(RCC->CR&0x2)); //poczekaj na HSI sprawdza czy HSI się włączyło RCC->CFGR|=(0xF<<18);...
Ale podejrzewam, iż nie za pomocą interfejsu UART a zwykłego GPIO Oczywiście że UART. Domyślnie pin ustawiony jest w tryb push-pull. UART domyślnie 'wysyła' IDLE a więc ciągły stan wysoki, a więc linia DQ jest silnie zasterowana plusem. Funkcje dokonujące transakcji przełączają na czas transakcji pin w tryb open drain. Po transakcji znowu pin jest...
Napisałem taki oto "program": [syntax=c] #include "stm32f4xx_adc.h" int INT_ADC = 0; int main(void) { ADC_Konfiguracja(); while(1) { ADC1->CR2 |= ADC_CR2_SWSTART; //Rozpoczęcie konwersji asm volatile ("nop"); while(!(ADC1->SR & ADC_SR_EOC)); //Czekamy dopóki ADC_SR_EOC nie będzie=1 INT_ADC = ADC1->DR; } } void ADC_Konfiguracja() { //Konfiguracja portu...
Hejka, od niedawna mam płytkę stm32 discovery. Próbuję już 2 dzień i mi nie działa transmisja po rs232.. układzik łączący z kompem zrobiłem na max3232 i jak sprawdzam echo (rx z tx) to wszystko ładnie śmiga. A jak podłącze to do pinów PA9 i PA10, to cały czas otrzymuję znaki puste. Wydaje mi się, że program poprawnie napisałem.. [syntax=c] #include...
NXP today announced the availability of new low-pin-count package options -- SO20, TSSOP20, TSSOP28 and DIP28 -- for its market-leading ARM(R) Cortex(TM)-M0 LPC1100 family of microcontrollers. The new LPC111x devices are the world's first 32-bit ARM microcontrollers in low-pin-count packages, and open the door for a broader range of applications previously...
Więc tak mam schemat algorytmu do odczytu z I2C. Potrzebna pomoc przerobić to na kod programu (najlepiej w C). http://images35.fotosik.pl/149/7b901d354... Adres układu z którego będzie odczyt to: 1001 000 (według dokumentacji od producenta). Mam jeszcze taką instrukcję: The following example shows how to configure the I2C module to send a single...
wybralem do tego PORT_B_PIN11 i PORT_B_PIN_12, nie jestem pewien czy dobrze to sprawdzilem w nocie katalogowej, ale wydaje mi sie ,ze one powinny byc 5V tolerant. Te są OK (jeśli masz STM32F103x8/B...) - w datasheecie musi przy danym pinie być dopisek "FT" w odpowiedniej kolumnie tabelki. Generalnie piny z przetwornikami ADC nie są 5V tolerant. A ja...
Witam Mam problem z odpaleniem UARTu pod STM32F746ZG (Nucleo). Nadawanie nie działa zarówno z DMA jak i bez. [syntax=c] #define USART3_RX_Pin 8 #define USART3_TX_Pin 9 #define USART3_GPIO GPIOD void HSE_RCC_init(void) { FLASH->ACR = FLASH_ACR_ARTRST | 7; // reset caches FLASH->ACR = FLASH_ACR_ARTEN | FLASH_ACR_PRFTEN | 7; // enable caches and...
[syntax=c]#define ONE_WIRE_SET_LOW ( GPIOA->BSRR |= ( 1 << 3 )) #define ONE_WIRE_SET_HIGH ( GPIOA->BRR |= ( 1 << 3 ))[/syntax] A nie przypadkiem odwrotnie? [syntax=c]gpio_pin_cfg( GPIOA, 3, GPIO_OUT_PP_50MHz );[/syntax] Do 1-wire powinieneś użyć konfiguracji open-drain, a nie push-pull - nic dziwnego że nie odpowiada... 4\/3!!
Ok. Czyli bez względu na to czy będzie to wyjście czy wejście piny ustawiam jako alternate function push-pull. Tak, chyba że dany interfejs faktycznie potrzebuje open-drain, np. I2C. Gdybym np konfigurował inne uklady np. UART to też w ten sam sposób? TX i RX alternate function push-pull? Tak. Z czego to wynika jak ma być ustawiony OTYPER? Manual jest...
W GPIOA->CRL ustaw CNF0 na <00> bo po resecie masz <01> czyli 01: General purpose output Open-drain a powinno być 00: General purpose output push-pull
Tak z innej beczki, udało mi się wczoraj odpalić SpiDevice. Rozumiem, że "domyślny" driver (spi1 z konfiguracji dla płytki discovery) nie dotyka konfiguracji pinów? Niestety - jest tak jak mówisz. Zarówno SPI jak i USART nie konfigurują automatycznie pinów. W swoich projektach inicjalizację taką daję w funkcji distortos::board::lowLevelInitialization...
Jak dla mnie sam interfejs powinien zostać włączony dopiero PO konfiguracji... Wrzucam Ci mój kod do I2C, który działa na dwóch urządzeniach - na jednym nie jest potrzebne to resetowanie tylko. konfiguracja: [syntax=C]io_pin_cfg(SDA_GPIO, SDA_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SDA - alt output, open-drain,...
Stary temat ale podepnę się bo mam podobny problem. Próbuję skomunikować STM32F429 (płytka discovery disco) z Atmegą8 (nie 88). STM Master Reviever <<>> Atmega Slave Transmiter. Wzorowałem sie trochę na kodzie kolegi i trochę na tym tutorialu: http://eliaselectronics.com/stm32f4-tuto... Problem kolegi kolegi...
Witajcie, Od paru dni walczę z pamięcią IS66WV51216EBLL-70 ([url=https://www.mouser.pl/datasheet/2/... Na QSPI mi nie wyszło to zwróciłem się ku pamięciom równoległym. Z tym, że nie używam żadnego dedykowanego protokołu tylko po prostu użyłem jednego całego portu jako magistrali danych i drugiego (oraz kawałka jeszcze...
Jest już dość późno, a ja od kilku godzin stoję w miejscu z komunikacją po SPI z akcelerometrem na płytce Discovery. Konfigurację oparłem na działających przykładach z Internetu. Natomiast sama funkcja odczytu/zapisu nic szczególnego nie robi :-) Niestety po odpytaniu akcelerometru WHO_AM_I otrzymuję tyko zera. Poniżej konfiguracja [syntax=c]void spi_config(void)...
Panowie działa aż miło :). Aktualnie kod mojego całego programu wygląda tak, pewnie ma więcej niedoróbek i błędów (np nie włączony zegar dla AFIO którego chcę używać) ale jest to narazie moja radosna twórczość Dodano po 1
Witam. Od pewnego czasu walczę z chińską płytką (blue-pill) z STM32F103 na pokładzie i z tego co już się nauczyłem oraz co sobie w ReferenceManualu wyczytałem to wiem, że AVR'y odłożę na półkę:) Moja nauka jest w stylu 'bare-metal' wykorzystuję jedynie pliki nagłówkowe stm32f103xb.h i kilka od CMSIS które można wydobyć z STM'owych bibliotek, więc ich...
Witam, Mam żyroskop L3GD20 podłączony pod SPI5 w STM32F429. Problem jaki napotkałem to przesunięcie odpowiedzi o jeden rozkaz. Pierwszy raz z czymś takim się spotykam, polega to na tym, że jeśli odczytuję rejestr np. 0x20, potem 0x21 i 0x22 to w miejscu 0x21 dostaje wartość z 0x20, w miejscu 0x22 dostaje 0x21 zaś jeśli jeszcze raz odczytam 0x22 to już...
Generalnie linie SCL i SDA powinny być skonfigurowane jako AF, Open Drain, PullDown? Bo wcześniej nie miałem linijki z PullDown. Odkryłem też w debuggerze, że biblioteka wpisywała do rejestru funkcji AFR - AF4 (I2C) tylko dla pinu 7. Dopisałem 5 pin ręcznie GPIOA->AFR[0]|= 4 << 20, ale dalej nic. Pin od CS powinien być skonfigurowany też jako...
Da się - czytaj stan prosto z portu. Właśnie przed chwilą wyczytałem, że przekombinowałem: (RM0090 Reference manual) 8.3.11 Alternate function configuration When the I/O port is programmed as alternate function: • The output buffer can be configured as open-drain or push-pull • The output buffer is driven by the signal coming from the peripheral(transmitter...
Dodałem konfiguracje pinu ale nadal brak zmiany stanu. Teraz w main mam tak: [syntax=c] int main(void) { volatile static int i = 0 ; PWM_TIMERCFG_Type PWM_config; PWM_MATCHCFG_Type PWM_matchcfg; PINSEL_CFG_Type PinCfg; //inicjalizacja struktury PWM_config PWM_config.PrescaleOption= PWM_TIMER_PRESCALE_TICKVAL; PWM_config.PrescaleValue = 1; PWM_Init(...
Mam kilka wyświetlaczy oznaczonych jako LEDC68 i mały problem z ich wykorzystaniem w połączeniu z Arduino. Wyświetlacze są stosowane m.in. w emulatorach stacji dyskietek Gotek i w sumie są dość popularne, a nie mogę znaleźć żadnej biblioteki do ich obsługi. Na stronie FlashFloppy jest taki schemat, ale wydaje mi sie niemożliwe abo kropka była tak podłaczona,...
Witajcie! Projekt który wykonuje na Raspberry Pi wymaga działania w warunkach ograniczonego zasilania. Stwierdziłem, że najlepiej będzie jeśli będzie on włączany okresowo (tj. np. raz na 30 minut). Najlogiczniejsze wydaje się użycie PCF8563 z podtrzymaniem bateryjnym i na końcu procedury zamykania systemu ustawienie alarmu w PCFie oraz jednego z GPIO...
Staram się połączyć STM32F0 z kartą SD (w sumie to mikroSDHC), ale niestety marne są tego skutki. Próbowałem już kilka kodów znalezionych w internecie ale w końcu zatrzymałem się na znalezionym na jakiejś niemieckiej stronie.. Skompilowałem, wyskoczyło mi kilka błędów związanych z nazewnictwem i deklaracjami funkcji to je poprawiłem. Kod teraz wygląda...
Witam. Od jakiegoś czasu próbuję uruchomić USB HID na płytce z stm32f103. Przykład od ST od początku mi nie przypadł do gustu i tu okazało się że jest całkiem fajny przykład od Keila. Projekt się kompiluje, brak błędów, ale komputer nihuhu nie wykrywa nic nowego. Nie mogę znaleźć przyczyny. Nie jestem do końca pewien czy aby na pewno właściwy pin "zatrudniam"...
drain kolektor oznaczenie drain drain pumpy
zrobić słuchawka bezprzewodowy objaw przepustnica kosztorysy elektryczne
zmywarka wirpool makita dmr106
HP LaserJet 1320 - Migająca zielona dioda, brak druku Znaczenie pomiaru IPZ w sieci TT z RCD