Nie znam tej biblioteki, pół minuty temu pobrałem jej źródła, ale z tego co patrzę, to struktura FILINFO zadeklarowana jakoś tak: [syntax=C]// FatFS R0.08b, ff.h typedef struct { DWORDfsize; /* File size */ WORDfdate; /* Last modified date */ WORDftime; /* Last modified time */ BYTEfattrib; /* Attribute */ TCHARfname[13]; /* Short file name (8.3 format)...
Dobry wieczór Sam zaczynam z armami i nie bardzo wiem, czy wypada abym coś radził ? W każdym razie moja walka z RTC skończyła się na programowaniu rejestrów, bo z HALem do ładu dojść nie mogłem. Co prawda procesor nie ten (STM32F091RCT6), ale może RTC to samo. Inicjalizacja RTC : [syntax=c] int InitZegarRTCWithLSE() { uint32_t LoopGuard; /* GPIO_InitTypeDef...
Moze trochę nie w temacje, ale kolega Kaczor90 prosił o proste rozwiązanie dla debouncingu, a tu co niektórzy chyba popsują się swoimi umiejętnościami programistycznymi, przekombinowywując jak się tylko da. Prosty przykład obsługi przycisków z uwzględnieniem z możliwością określenia mininalnego czasu wciśnięcia przycisku: [syntax=c] #define BUTTON_DEBOUNCE_TIME...
Dzień dobry, od dłuższego czasu próbuję wykonać projekt sterowania Transceivera RF CC120 firmy Texas Instruments za pomocą mikrokontrolera STM32F100RBT6B, który jest na płytce uruchomieniowej STM32VLDISCOVERY. Mam już napisaną część kodu, jednak nie jestem pewien czy SPI jest faktycznie poprawnie uruchomione oraz (i tu prośba do kogoś, kto się orientuje...
No cóż bez płytki i proca nic chyba już nie wymyśle. Gdy dochodzę do takiej ściany, to zaczynam porównywać rejestry w debug'u na HALu do tego na rejestrach. Dodano po 6 Tak sobie wymyślili Musisz tam wpisywać do AFR[1]. W pliku jest to dokładnie rozpisane [syntax=c] /** * (at)brief General Purpose I/O */ typedef struct { __IO uint32_t MODER; /*!<...
Nigdzie nie pisalem o podpowiadaniu nazw. Po drugie to o czym piszesz mozna bez problemu osiagnac przez "forward declaration" struktury w pliku h. Typedef absolutnie nic nie daje w tym przypadku. Plik h: [syntax=c] struct awesome_driver; struct awesome_driver* adrv_init(int id); /*.....*/ [/syntax] Plik c: [syntax=c] #include "awesome_driver.h" struct...
Próbuję skompilować przykład obsługi USB HID od Keil'a przy pomocy kompilatora gcc. Stąd pobrałem kod - http://www.keil.com/download/docs/361.as... Problem polega na tym, że najwidoczniej w gcc inaczej deklaruje się struktury i unie niż w Keil'u przez co przy próbie kompilacji otrzymuje masę błędów: expected '=', ',', ';', 'asm' or '__attribute__' before...
Cześć jakiś czas temu spotkałem się z takim zapisem mapowania rejestrów: C gives no guarantee of the ordering of fields within machine words , więc może być problem z portowaniem. Nie mam zamiaru "wynajdywać koła na nowo" tak pytam się z ciekawości o wasze opinie. Ewentualnie tak myślę że dałoby rade to zrobić też w C++ z template w taki sposób żeby...
Witam Na wstępie środowisko środowisko na bazie tutorialu Freddie Chopin-a , z dołączonym "STM32F10x_StdPeriph_Lib_V3.5.0" Płytka bazowa ZL27 Kamami. Kompilator CodeBench Lite for ARM EABI Praca bez systemu operacyjnego (na ARM) Problem jest następujący. Chciałem uzyskać możliwość pełnego wysyłania danych przy pomocy Printf na wiecej niż standardowe...
Witam Mam dosyć spory problem z parsowaniem tekstu, mianowicie użytkownik może w terminalu wpisać sobie taką o to składnie. Silnik 3,5;Silnik 5,25;Silnika 7,45; Ma to podzielić na "Silnik 3,5" , "Silnika 5,25" itp; Robię to w następujący sposób: -gdy z USARTa przychodzi ciąg znaków zakończonych znakiem '\0' wychodzi do przerwania gdzie tworzona jest...
Czy może mi ktoś podpowiedzieć o co chodzi? Wczoraj w Eclipsie robiłem testy, i nagle dzisiaj już to nie chodzi. Nie zmieniałem nic, uruchomiłem po prostu od nowa Eclipsa. Problem dotyczy zmiennych zadeklarowanych w przerwaniu void USB_LP_CAN1_RX0_IRQHandler (void) { DWORD istr, num, val;....} Które po przypisaniu po chwili znikają i mają wartość optimized...
Dzięki :) - właśnie tak wywnioskowałem z pliku *.h i napisałem coś takiego - chyba działa. Dziwi mnie tylko brak konsekwencji w nazewnictwie. Dodano po 1 Dalsze problemy: Nie potrafię nic zapisać do skonfigurowanej pamięci (LCD). Kontroler LCD nie jest fizycznie podpięty ale to chyba nie ma znaczenia. Podejrzewam,że należy załączyć stosowny bank pamięci...
Napisałem program obsługujący komunikację RS232 dla płytki STM32 P103: - dokumentacja płytki https://www.olimex.com/dev/pdf/ARM/ST/ST... - schemat https://www.olimex.com/dev/images/ARM/ST... Niestety łącząc docelowo przez konwerter RS232 -> RS485 i podłączając do serwomechanizmu RS28 dynamixel podłączyłem raz zasilanie 15V,...
Mało przykładów w sieci z CANem. Mam wolne piny PB8 i PB9 więc na tych pinach chciałbym zrealizować CANa. Z informacji z sieci poskładałem coś takiego: CAN.h [syntax=c] #define STANDARD_FORMAT 0 #define EXTENDED_FORMAT 1 #define DATA_FRAME 0 #define REMOTE_FRAME 1 typedef struct { unsigned int id; /* 29 bit identifier */ unsigned char data[8]; /* Data...
michalko12: Zmieniłem xHandleTaskLED1, xHandleTaskLED2 na static, ale nic to nie pomogło. xLastFlashTime nie można: error "initializer element is not constant". W keilu żadnej tej zmiennej nie miałem jako static a program działał więc podejrzewam, że nie tu jest problem. Dodano po 4 Smashing: Jak wrzucam Twój program do Eclipsa to się nawet nie kompiluje...
Przykład dla DMA [syntax=c]void Init_DMA_TFT(uint16_t nofData) { // DMA2 Init Stream 0 from SRAM to FSMC DMA2_Stream0->CR &= ~(DMA_SxCR_EN); while ((DMA2_Stream0->CR & DMA_SxCR_EN));// wait for disable and clear all flags DMA2->LIFCR |= DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0; //0b----|...
Nie keil a real view :P. typedef union _MMCstate { struct { BYTE isSDMMC : 1; // Set if it is a SDMMC BYTE isWP : 1; // Set if it is write protected } pola; BYTE _byte; } MMCSTATE; i później Flag->pola.isWP = 0; Flag->pola.isSDMMC = TRUE; sprawdzone
Musisz dokładnie zajrzeć do "stm32f10x.h". Otworzyć go w okienku i CTRL+F i nazwa, lub okienko Outline jak masz i poszukać. Czasem są takie wyjątki w nazwie, ale większości wypadków tak nie jest (; typedef struct { __IO uint32_t CCR; __IO uint32_t CNDTR; __IO uint32_t CPAR; __IO uint32_t CMAR; } DMA_Channel_TypeDef; //........... #define DMA1_Channel1...
Powodem może być niepoprawna konfiguracja rejestrów sterownika. poza tym nie pokazałeś jak wygląda funkcja zapisu do ramu i ustawienia kursora. Ja używam takich funkcji: [syntax=c] typedef struct { vu16 REG; vu16 RAM; }LCD_TypeDef; #define LCD_BASE (0x6c000000) #define LCD (( LCD_TypeDef *) LCD_BASE) void LCD_WrReg(u8 reg, u16 data) { LCD->REG =...
:) Znalezione... nie wiem czy o to autorowi chodziło [syntax=c]typedef struct { unsigned char count; nrf_reg_bitsdata[]; } nrf_reg_fields; #ifdef NRF_REG_DEF_META #define REGF(FNAME, FSIZE, FRW) { .name = FNAME, .size = FSIZE, .rw = FRW, } #define REG(RNAME, RSIZE, RFIELDS) { .name = RNAME, .size = RSIZE, .fields = RFIELDS, } #else #define REGF(FNAME,...
Funkcja inicjalizująca wywołuje kilka innych, więc żeby po trochu nie wstawiać kodu, oto cały plik RC5_IR_Emul_Receiver.c : [syntax=c]/** ****************************************... * (at)file STM32F10x_RC5_Receiver_Lib/src/RC5_IR_Em... * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 03/16/2010...
Dzięki za odpowiedzi! gaskoin wydaje mi się, że sprawdzanie bufora w przerwaniu po odebraniu znaku nie będzie zbyt optymalne bo komunikacja wygląda tak: Zapytanie: AT\r\n Odpowiedź: AT\r\n// Z włączonym echem OK\r\n Więc w trakcie odbierania znak \n pojawia się klika razy przez co będę blokował przerwanie podczas odbierania danych. Teoretycznie echo...
Witam, pozwolę sobie na wykopaliska archeologiczne, ale myślę, że to może się jeszcze komuś przydać. Większość przypadków Hard Fault podczas działania DMA w STM32F1 powstaje przez błędną konfigurację kanału DMA przy użyciu biblioteki standardowej. Błędny fragment kodu: hlayer.c:167:43: warning: assignment makes integer from pointer without...
Udało mi się napisać kod, niestety z jakiś powodów nie działa. Nie wysyła ramek. Prawdopodobnie jest coś z inicjalizacją źle. Mógłby ktoś sprawdzić dlaczego? [syntax=c]#include "stm32f10x.h" #include "misc.h" #include "stm32f10x_can.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" int i; CanTxMsg TxMessage; CanRxMsg rx_message; uint8_t TransmitMailbox...
Coś naplątałeś... Aby uzywać malloca bez dziwnych errorów, musisz zadeklarować odpowiednią ilość miejsca na stertę . Co z tego, ze twoje zmienne zajmują niewiele ramu, skoro najpewniej ustawiles sobie parę kB sterty, i gdy przekroczysz te pare kB, program ci sie natychmiast wykrzaczy, bo oczywiście najpewniej nigdy nie sprawdzasz, czy malloc przypadkiem...
(at)BlueDraco Tylko że jest to w ich bibliotece a nie w przykładzie. Użycie customHID bez zmieniania biblioteki nie pozwala na użycie dłuższego raportu. [syntax=c]typedef struct _USBD_CUSTOM_HID_Itf { uint8_t *pReport; int8_t (* Init) (void); int8_t (* DeInit) (void); int8_t (* OutEvent) (uint8_t, uint8_t); }USBD_CUSTOM_HID_ItfTypeDef;[/syntax]
jeeeez!!... "czegoś mi tu brakuje" jest chyba zbyt ogolnym stwierdzeniem aby cokolwiek pomóc... Zrobilem sam na dokladnie tych samych STMach conajmniej 5 roznych interfejsów CAN<->UART i za tydzien bede robic kolejny... Więc mogę podpowiedzieć: 1) TXuj UARTa przez DMA. Tylko. Zawsze. Najzawszej... 2) Tego UARTa TXuj przez DMA z bufora kołowego....
Witam, Konfiguracja projektu oparta o stm32_blink_led autorstwa Freddie Chopin. Układ STM32F103. Uruchomiłem proste przerwanie z UARTa żeby sterować przepływem programu podczas testów. Problemem jest to wywołanie funkcji z przerwania: typedef struct { u8 print_test_1; u8 print_test_2; u8 print_test_3; } sys_flag_t; volatile sys_flag_t sys_flag;...
A może o to chodzi? [syntax=c] typedef struct stale_globalne_t { int A_DAC,B_DAC,C_DAC,D_DAC; }STALE; __attribute__((used)) const STALE alfa={1,2,3,4}; int main(void) { while(1); } [/syntax] Popraw ortografię -> "UŻYWANE" !
Witam, pisze funkcje obsługi fontów o rożnych szerokościach do mojego LCD opierając się na przykładach (PixeLab i artykuł z EP)i poległem przy dwóch ostatnich linijkach. Przy każdej występują dwa te same ostrzeżenia: [syntax=c] ./src/lib/ILI9341/text.c:86:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]...
W AVR-ach nie ma chyba niczego takiego. W nowych (np. AVR64DD32) już jest: [syntax=c]/* I/O Ports */ typedef struct PORT_struct { register8_t DIR; /* Data Direction */ register8_t DIRSET; /* Data Direction Set */ register8_t DIRCLR; /* Data Direction Clear */ register8_t DIRTGL; /* Data Direction Toggle */ register8_t OUT; /* Output Value */ register8_t...
Witam, piszę aplikację na ARMa, która wymaga wielu mnożeń oraz sumowań(głównie macierzy). Pomyślałem więc o zastosowaniu stałego przecinka, który mógłby przyspieszyć tę operację dość znacznie. Z tego co się zorientowałem, to wykonanie operacji mnożenia 2 floatów w procesorze STM32F103VE zajmuje 47 instrukcji (wg. CrossWorks). Teraz mam funkcję mnożącą...
Z paczki STM-a z kwietnia 2017. Jak na FATFs to dość świeże. Paczka F303 v1.7.0 Paczka dla STM32L4 ściągnięta parę dni temu: [syntax=c]typedef struct { FSIZE_tfsize; /* File size */ WORDfdate; /* Modified date */ WORDftime; /* Modified time */ BYTEfattrib; /* File attribute */ #if _USE_LFN != 0 TCHARaltname[13]; /* Alternative file name */ TCHARfname[_MAX_LFN...
Walczę z obsługa klawiatury - w tym necie nic sensownego znaleźć nie można .... na razie tyle .......; #include <stdio.h> #include <stdlib.h> #include <HD44780.h> // definicje zmiennych ----------------------------------------... #define vcc_ref 5.0 // napiecie referencyjne #define hall_ref 2.5 // napiecie referencyjne...
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,...
chcę zsumować wszystkie bajty struktury. Dodano po 44 mam podejrzenie że chcesz zrobić coś bardzo dziwnego i zupełnie niepotrzebnego... często tak mam :)
Wielkie dzięki. Instrukcja load niestety nie działa w tego typu zastosowaniu. Wystarczy zmienić na monitor flash write_image erase main.bin 0x08000000 Reasumując Gdyby ktoś kiedyś chciał zaimplementować używanie flasha jako eeprom: Można tak: Zainicjować sobie strukturę obojętnie jaką w sekcji variables. #define FLASH_PAGE_SIZE ((u16)0x400)...
A w pliku stm32f10x.h jest: [syntax=c]#define SPI_CR2_TXEIE ((uint8_t)0x80) /*!<Tx buffer Empty Interrupt Enable */[/syntax] Zauważ że to przerwanie będzie generowane po każdym opróżnieniu bufora TX. Powinieneś włączyć je dopiero pod koniec czyli w Twoim przypadku podczas obsługi przerwania od zakończenia działania DMA. Lepiej jednak wróćmy do wcześniejszej...
na podstawie kursu języka C Wskaźnik na unie i strukturę Podobnie, jak na każdą inna zmienna, wskaźnik może wskazywać także na unie lub strukturę. Oto przykład: typedef struct { int p1, p2; } Struktura; int main () { Struktura s = { 0, 0 }; Struktura *wsk = &s; wsk->p1 = 2; wsk->p2 = 3; return 0; } Zapis wsk->p1...
Możesz zrobić to np. tak: [syntax=c] typedef __packed struct { uint8_t byte_1 :8; uint8_t byte_2 :8; uint8_t byte_3 :8; uint8_t byte_4 :8; }ftobytes_t; float dana; ftobytes_t *zapis; zapis=(ftobytes_t*)(&dana); eeproma=zapis->byte_1; eepromb=zapis->byte_2; eepromc=zapis->byte_3; eepromd=zapis->byte_4; [/syntax] Ja opierałem się na kompilatorze RelView...
Oho, właśnie mi znowu nie chciał przejść pierwszego startu. Twój sposób pomógł :) Skąd ty go wytrzasnąłeś? :D ps. typedef struct { uint32_t SYSCLK_Frequency; /*!< returns SYSCLK clock frequency expressed in Hz */ uint32_t HCLK_Frequency; /*!< returns HCLK clock frequency expressed in Hz */ uint32_t PCLK1_Frequency; /*!< returns PCLK1 clock...
Rok 2013. Grudzień. Świat jest już technologicznie zaawansowany. Proszę o informację, czemu w tej "świetnej" bibliotece w funkcjach typu [syntax=C]void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef... FSMC_NORSRAMInitStruct);[/syntax] oraz w strukturach typu: [syntax=C]typedef struct { ... FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct; /*!<...
Cześć, void dupa() { ; } int main() { dupa(); int test; //FILINFO Info[1000]; while(1) { ; } return 0; } Jeśli odkomentuję deklarację tablicy FILINFO Info , to przy wejściu do funkcji dupa(); wyskoczy wyjątek, który przenosi sterowanie do HardFault_Handler() . Dzieje się tak niezależnie...
I kontynuuję temat. Na razie kod taki: [syntax=c] /***************************************... * Function Name : Game * Description : Game test * Input : None * Output : None * Return : None * Attention : None ****************************************... /*typedef enum{ NONE=0,...
Może to dlatego, że GIOB to jest makro a nie zmienna. Wydłubałem trochę kodu z twoich plików źródłowych: [syntax=c]#define __IO volatile typedef struct { __IO uint32_t CRL; __IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef; #define PERIPH_BASE ((uint32_t)0x40000000) #define...
Witam, Próbuje zaimplementować hosta na stm32f407, który będzie obsługiwał klawiatury. Bazuje na przykładzie ze strony: [url=http://stm32f4-discovery.com/2014/0... Przykład jest oparty na: STM32_USB-Host-Device_Lib_V2.1 Mam dwa problemy: 1. Nie działa wysyłanie raportów z hosta do klawiatury...
Dzień dobry, Mam problem z dogadaniem się z ADIS16201. https://www.analog.com/media/en/technica... Zacznę od tego, że korzystam z płytki : https://www.analog.com/en/design-center/... Wyjścia podłączyłem w sposób następujący: ADIS1620...
Z przetwornika ADC dostaję 24 bity, a pamięć mam 16-bitową Co to znaczy, że masz pamięć 16 bitową? Bo jakoś tego nie rozumiem. To że masz 16 bitów danych z układu pamięci nie oznacza, że STM nie potrafi tego użyć jako "normalną pamięć". Nie rozumiem dlaczego nie możesz robić tego na 24 bitach. Jeżeli chcesz robić operacje ze znakiem na 24 bitowych...
Można powiedzieć, że nic ci nie działa bo uzywasz SPL... Ramka CAN: [syntax=C] typedef __packed union CANFrameInfo { u8 val; __packed struct { u8 rtr:1; u8 ide:1; u8 dlc:4; }; } CANFrameInfo; typedef __packed struct CANFrame { CANFrameInfo info; __packed union { u32 id32; u8 id8[4]; u16 id16[2]; }; __packed union { u8 data[8]; u32 data32[2]; }; } CANFrame;...
Proszę kod bez dodatkowych pustych lini. biblioteka [syntax=c] /* Includes ----------------------------------------... #include "TC.h" #include "systick.h" #include "GLCD.h" #include <stdio.h>; /***************************************... * Function Name : MAX31855_SPI_Init * Description...
typedef struct sizeof struct stm32 typedef volatile
dopasować linia 50ohm odpalaniem skoda bufor rs232
peugeot zdjąć nadkole ws442 opóźnione
Fuego 32EL610ANDT USB SW Firmware Flashing Guide – TP.MT5510S.PB803, TP.SK506S.PB802 Analiza algorytmu programatora Vilab