• Welcome to Andy's Workshop Forums. Please login or sign up.
 
May 02, 2024, 10:19:15 am

News:

SMF - Just Installed!


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - ris2t

1
Update: Looks like a compiler issue. Managed to repoint (environment variable path) systemWorkBench at a 5.2.1 version and it compiles.

rm-none-eabi-g++ (GNU Tools for ARM Embedded Processors) 5.2.1 20151202

Would still be curious to understand the error and if the template code can be fixed. Or if it is the dud compiler.
2
stm32plus C++ library / Building with Ac6 SystemWorkBench
December 24, 2016, 06:39:52 pm
Hi

Building the latest STM32 4.0.5 with the Ac6 SystemWorkBench (Mars 4.5.2) and getting the following error thats not making alot of sense (my C++ KB is very outdated).


/home/raymond/workspaceC/stm32plus/include/crc/BigEndianCrc.h:31:31: error: invalid conversion from 'int' to 'stm32plus::Endian' [-fpermissive]
class CrcPeripheral<BIG_ENDIAN> : public CrcBase {


I do note that the work bench seems to embedd, 5.4.1 compiler which I see another post flags as incompatible.
arm-none-eabi-g++ (GNU Tools for ARM Embedded Processors) 5.4.1 20160609

However its just this one error I'm encountering and rejigging SystemWorkBench to an older version looks to be non trivial.

Any help appreciated.
3
Thanks for the confirmation.

Eventually trace my problem of passing a char array to httpClient.setUri rather than a C++ string. Issues fixed.
char datapump[160];
httpClient.setUri(datapump);

instead off
std::string datapump;
httpClient.setUri(datapump);


            
4
Upon further investigations:

GPIOA-<MODER register seems to been set correctly and overlap, so this suggests using the GpioA template is complementary (i.e. no conflict).

This code seem to hang having gone into startup.asm on "Infinite_Lopp".  Likely I have some kind of memory allocation issues, so will investigate that angle.


Thread [1] (Suspended : Signal : SIGINT:Interrupt)
WWDG_IRQHandler() at Startup.asm:113 0x8005dac
<signal handler called>() at 0xfffffff9
_malloc_r() at 0x801d4ba
stm32plus::net::NetBuffer::NetBuffer() at NetBuffer.h:79 0x8007236
stm32plus::net::TcpConnectionState::sendHeaderOnly() at TcpConnectionState.h:113 0x800962e
stm32plus::net::TcpConnectionState::sendAck() at TcpConnectionState.h:69 0x8009574
stm32plus::net::TcpConnection::receive() at TcpConnection.cpp:808 0x8001e22
stm32plus::net::TcpTextLineReceiver::add() at TcpTextLineReceiver.h:91 0x8009aa8
stm32plus::net::HttpClient::readResponse() at HttpClient.h:282 0x800a8f0
stm32plus::net::HttpClient::sendRequest() at HttpClient.h:220 0x800a728
<...more frames...>


Thanks
5
Hi

Novice question I'm hoping for some guidance on. Using STM32F4 Discovery board.

I've taken the stm32plus-examples-net-web-client (RMII) project and extended it to read a DHT11 (humidity and temp sensor) on pin PA03.

Within the DHT11 code I'm using the GPIO template to initialize the pins.
    GpioA<DigitalOutputFeature<GPIO_Speed_50MHz,Gpio::PUSH_PULL,Gpio::PUPD_NONE,GPIO_PORT_NUMBER> > pa_out;

GpioA<DigitalInputFeature<GPIO_Speed_50MHz,Gpio::PUPD_NONE,GPIO_PORT_NUMBER> > pa_in;

In isolation the two pieces of code work fine, I can do Ethernet and separately DHT11 reading.

However when joined in various orders ethernet and DHT11 readings fail. I get the impression the port isn't setup any more.

Question:

Is it possible to declare multiple instance of the GpioA template on the same port group, or should I be using something like GpioPinInitialiser::initialise.

Look for any guidance on why declaring GpioA would clash with the ethernet classes.

Thanks
Raymond