Sida 1 av 5

Hur många av er här kör STM32?

Postat: 22 maj 2020, 21:32:25
av DanielM
Nyfiken fråga bara.

Hur många av er här kör STM32, dvs Nucleo-korten?
Vad tycker ni om dom?
Vad körde ni innan?

Själv körde jag Arduino. Men STM32 kändes mer påkostat, och även billigare och man dessutom skrev mindre kod tack vare projektstartaren CubeMX.

Re: Hur många av er här kör STM32?

Postat: 22 maj 2020, 22:38:49
av hummel
Det är ett brett område med STM32, från Von Neuman- till Harvardarkitektur.

Re: Hur många av er här kör STM32?

Postat: 22 maj 2020, 23:56:42
av DanielM
Själv använder jag STM32 till machine learning. Robotik med andra ord.

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 01:08:08
av ToPNoTCH
Jag.

Jag gillar dom.
Simpelt programmeringsgränssnitt och bra debug stöd.
Gratis IDE som funkar vettigt (Atollic)

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 15:22:57
av AndLi
Stm32 använder jag i princip uteslutande, Nucleo i tidiga prototyper och labbruskor men oftast riktiga pcb.

CubeMX och ST HAL undviker jag till stor del för de gömda tidstjuvar som titt som tätt där när man börjar göra mer avancerade saker...

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 16:53:56
av DanielM
Du måste ha mycket fritid då för att skriva allt i hex? ;)

Hur som helst!
Jag har ett litet problem och lånar tråden här.
Jag använder trådar för att skriva ut saker på en 340*230 LCD. Jag har märkt att skriva ut 40*40 ikoner fungerar inte med RTOS.

Kan det vara så att LCD + RTOS är inte rekommenderat? Alltså hantera stor data med RTOS är inte bra?
Jag har märkt att jag fick utöka Stack Size något till högre tal. Men gränsen går vid 3800 Word. Jag är på 1600 Word nu.

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 18:13:27
av TomasL
Är ju normalt sett inga problem, det beror ju helt på hur du skrivit dina egna rutiner, och vilket RTOS du använder.

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 18:20:17
av DanielM
Jag återkommer med mer information senare. Ska bygga klart logiken till en LCD nummerplatta.

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 19:28:13
av AndLi
DanielM skrev:Du måste ha mycket fritid då för att skriva allt i hex? ;)
Varför skulle jag skriva allt i hex?

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 20:45:07
av DanielM
Om man inte använder HAL eller CubeMX så är det väll bara Hex som gäller? Och ettor och nollor för att inte glömma?

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 20:58:36
av ToPNoTCH
Du är vilsen igen.
HAL Introducerades relativt nyligen.
Hur tror du man skrev kod innan HAL ?

HAL är ST's försök att introducera en ersättning för det gamla "hederliga" Standard peripheral library.
Cube MX är en konfigurator som "automatgenererar" kod.

HAL är perfekt för den som inte vill veta hur det funkar och vill ha lite sköna buggar på köpet.

Cube MX använder jag för att dokumentera pin användning och det är den bra på.
Att automatgenerera kod håller jag mig borta ifrån.

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 22:22:52
av DanielM
TomasL skrev:Är ju normalt sett inga problem, det beror ju helt på hur du skrivit dina egna rutiner, och vilket RTOS du använder.
Nu tillbaka!

Jag har ett litet problem när det handlar om trådar.
Det som händer är att tråden stoppas när jag försöker använda SPI klockan.

Jag har en funktion som heter:

Kod: Markera allt

			uint16_t new_input = (uint16_t) rand() % 205;
			uint16_t new_output = (uint16_t) rand() % 205;
			change_plot_values(&spi, new_input, new_output, only_move_array);
Och vad den gör är att den skriver ut slumpmässiga värden på en plott. När jag har denna kod innuti en tråd så blir rand() bara en konstant.
Så det blir bara ett rakt streck på LCD:n.

När jag väl trycker på en ikon på LCD:n så jag kommer till ett annat fönster, så stoppas allt. Då måste jag starta om mikroprocessorn.

Grejen är att oavsett vilken LCD funktion jag använder, så anropar den SPI funktionerna. Inge UART eller något anant sådant.
Just nu har jag två trådar, där 1 tråd har data. Den andra är tom.
Sélection_004.png

Här är ett exempel på något som du känner igen.

Kod: Markera allt

**
 * @brief  Function implementing the LCD thread.
 * @param  argument: Not used
 * @retval None
 */
/* USER CODE END Header_LCDTask */
void LCDTask(void *argument)
{
  /* USER CODE BEGIN 5 */
	// Init LCD
	ILI9341_Init(&spi, &hspi2, LCD_CS_GPIO_Port, LCD_CS_Pin, LCD_DC_GPIO_Port, LCD_DC_Pin, LCD_RST_GPIO_Port, LCD_RST_Pin, TS_CS_GPIO_Port, TS_CS_Pin);

	// Calibrate the touch if blue Nucleo board button is pressed
	if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == GPIO_PIN_RESET) {
		TSC2046_Calibrate(&spi);
	}
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); /// <--- HÄR LYSER EN LED
	// Create initial frame
	create_main_frame(&spi, closedloop_on, only_change_loop_icon); /// <--- Nu anropar vi denna funktion

Kod: Markera allt

// Create the main frame
void create_main_frame(ILI9341_SPI* spi, bool closedloop_on, bool only_change_loop_icon){
	// Set rotation
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); /// <--- Här släcks inte LED lampan. Jag får HardFault som felmeddelande
	ILI9341_setRotation(spi, 2);
Lustigt nog så fungerar det att lysa med LED lampan om jag implementerar den här:

Kod: Markera allt

// Calibrate resistive touch panel
void TSC2046_Calibrate(ILI9341_SPI *spi) {
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); /// <--- Här fungerar det
Jag vet vad syftet med trådar är. Men jag vet inte hur dom fungerar på inbyggda system. I Java kan hag tråda.

Re: Hur många av er här kör STM32?

Postat: 23 maj 2020, 22:23:32
av DanielM
ToPNoTCH skrev:Du är vilsen igen.
HAL Introducerades relativt nyligen.
Hur tror du man skrev kod innan HAL ?

HAL är ST's försök att introducera en ersättning för det gamla "hederliga" Standard peripheral library.
Cube MX är en konfigurator som "automatgenererar" kod.

HAL är perfekt för den som inte vill veta hur det funkar och vill ha lite sköna buggar på köpet.

Cube MX använder jag för att dokumentera pin användning och det är den bra på.
Att automatgenerera kod håller jag mig borta ifrån.
Det handlar om att kunna ha tid också. HAL uppfanns inte för att folk blev dumma och lata.
Ungefär som att anklaga Pythonprogrammare varför dom inte använder assembler.

Re: Hur många av er här kör STM32?

Postat: 24 maj 2020, 10:52:32
av AndLi
DanielM skrev:Om man inte använder HAL eller CubeMX så är det väll bara Hex som gäller? Och ettor och nollor för att inte glömma?
Inget av det är ju programmeringsspråk, bägge använder c och det gör ju såklart jag med.

Och lite använder jag både cube och Hal.. klockträdsberäknaren är ju rätt smidig. Och vissa grundfunktioner i Hal gör ju rätt.. så gpio pinnuppsättning brukar bli med Halen...

Re: Hur många av er här kör STM32?

Postat: 24 maj 2020, 10:59:13
av AndLi
Nä Hal:en för stm32 är jag helt övertygad om uppfanns för att få folk att komma tillräckligt långt in i projektet för att hinna ta fram ett kort och sen vara fast med stm32an...

Det är ju precis av samma anledning som de säljer nucelus korten så billigt. Det ska gärna ligga och drälla överallt så första moc upen blir på ett sånt.. sen orkar man inte byta processor..
Och st hamnar i slutprodukten... visst de kommer inte in i volymprodukterna på det sättet.. men smågrejorna som går i 20 000 om året kan det lätt slinka in..