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...
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...
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...
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...
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,...
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----|...
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...
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...
Nie do końca umiem wyjaśnić, dlaczego C++ różni się tutaj od C, ale mam inną propozycję, rodem z ANSI C :) Przykładowy kod można przepisać: #include <stddef.h> typedef struct { int first; int second; int third; } type_t; #define ADDRESS 0x12345678 const int data = (ADDRESS + offsetof(type_t, second))*2; int main(void)...
(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]
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" !
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...
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ą...
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;...
(at)ElektrodaBot Dzień dobry, zmagam się z nietypowym problemem. Zepsuł mi się ostatnio moduł I2S2 MOD podłączony do stm32f407, który zawierał zarówno ADC jak i DAC działający po I2S. Kupiłem coś tańszego - jako ADC PCM1808, oraz jako DAC PCM5102. Wcześniej działałem na full-duplexie, teraz jestem zmuszony działać na half-duplexie. Napisałem prosty...
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...
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...
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...
le nie ma tam słowa o FMC . No bo FMC po skonfigurowaniu to po prostu pamięć w przestrzeni adresowej - czyli po prostu piszesz lub czytasz do/z tego adresu. Czyli DMA memory to memory. Dla przykładu u mnie w projekcie teraz używam banku 1, 16 linii danych i szyny adresowej A2 jaki DC. Po sonfigurowaniu FMC [syntax=c]typedef struct { volatile uint16_t...
Jest szybsze bo tak jak mówisz te rejestry są tylko do zapisu. Też mam coś takiego: [syntax=c]typedef struct { __IO uint32_t MODER; /*!< GPIO port mode register, Address offset: 0x00 */ __IO uint32_t OTYPER; /*!< GPIO port output type register, Address offset: 0x04 */ __IO uint32_t OSPEEDR; /*!< GPIO port output speed register, Address offset:...
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...
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...
Witam, Napisałem kod obsługi interfejsu SPI dla uC STM32F303 oraz STM32F051. Kod ten obsługiwał komunikację z NRF24L01+. Miałem problem z tym programem gdyż mikrokontroler przy próbie posłania bajtu do urządzenia za pomocą funkcji: [syntax=c] while (SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_TXE) == RESET) ; SPI_I2S_SendData(SPIx, byte); while (SPI_I2S_GetFlagStatus(SPIx,...
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...
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...
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...
Czy ja dobrze czytam, że w przerwaniu od timera robisz set/reset pinów i to Twój PWM? Nie, to jest lewitacja elektromagnetyczna i odwracam w ten sposób polaryzację cewki, kiedy PID wyliczy ujemną wartość (lewitujący obiekt przekroczy setpoint). Dodano po 6 Wrzucam jeszcze całego main'a. [syntax=c] /* USER CODE BEGIN Header */ /** ****************************************...
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]...
Najlepszego w Nowym Roku i w następnch (rokach też). Proszęż uprzejmież : [syntax=c] #ifndef NOUVOTON_SD_CARD_H_INCLUDED #define NOUVOTON_SD_CARD_H_INCLUDED // #include "NouvotonSDCard.h" #define __IO volatile typedef struct { __IO uint8_t CSDStruct; /* CSD structure */ __IO uint8_t SysSpecVersion; /* System specification version */ __IO uint8_t Reserved1;...
I kontynuuję temat. Na razie kod taki: Czyli coś jest nie tak z wykrywaniem kolizji nadal... A moze prosty algorytm wektorowy - mniej wiecej tak z kolizjami radza sobie nowsze gry... [syntax=c] #include <stdio.h> #include <assert.h> #include <math.h> #include <SDL/SDL.h> #include <SDL/SDL_gfxPrimitives.h> typedef struct...
Witam, Zaczynam zabawę z STMami i mam pewien problem. Z kilku kodów w internecie zlepiłem swój kod i niestety jak to zwykle bywa coś jest nie tak. Docelowo chciałem obsłużyć wyświetlacz TFT wykorzystując FSMC. Napotykam problem gdy próbuje zrobić w pętli głównej wysyłanie danych przy użyciu FSMC w pewnych odstępach czasu. Jeżeli w kodzie umieszczam...
typedef struct sizeof struct stm32 typedef volatile
podłaczyć stycznik podłączyć transformator schemat linux debian
cyfrowy zasilacz tny274 zmywarka bosch
Klawiatura: jak wpisać ukośnik / na PC, Mac, QWERTY, QWERTZ, AZERTY Zipp YM50-9 – jaka cewka zapłonowa 139FMB/139QMB? Wilmat, Naraku, NGK, Motoforce