...
The QSL includes a SimplePublish example for the STMicroelectronics NUCLEO-L053R8 development board. This is given as a project for the Eclipse/GCC based System Workbench for STM32, where STM32CubeMX has been used to auto- generate the necessary Hardware Abstraction Layer (HAL) code.
The application behaves just like SimplePublish for the other platforms, and like the example for SAM C21; debug prints are re-targeted through a second serial port. A green LED on the Nucleo board is also toggled to indicate whether the mote has connected to a network or not.
...
Note |
---|
Make sure to check your spam filter if you don't receive a validation email after registering. |
...
Prepare the NUCLEO-L053R8
Anchor | ||||
---|---|---|---|---|
|
Connect to Mote
Anchor | ||||
---|---|---|---|---|
|
...
The extension connectors of the NUCLEO-L053R8 is pictured in Figure 8, with the relevant pins marked. As you can see, there are both a set of Morpho and Arduino connectors. Connect the mote to the Nucleo board as per the mapping in Table 12, either through the CN7 and CN10 headers (Table 10 and Table 11) or the corresponding pins on the Arduino headers. Note that you can of course just connect the RX RTSn and TX CTSn to GND on the mote itself, as can be seen in the example in Figure 7.
...
Warning |
---|
Note the +5V pin right below the +3V3 pin: You will fry your mote if you mistakenly connect to this! |
...
Anchor fig_nucleoPinout fig_nucleoPinout
Figure 8: NUCLEO-L053R8 extension connectors.
Section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
|
...
|
...
|
Connect ST-LINK to Computer
Anchor | ||||
---|---|---|---|---|
|
Connect a USB cable from your computer to the USB-mini B port labeled CN1: This is the port at the top of the NUCLEO-L053R8 (visible on the right side of Figure 7), which connects the integrated ST-LINK/V2-1 debugger to your computer, and is used to power, program and debug the board.
...
Tip |
---|
You can (de)activate debug and log messages with the NDEBUG and NLOG defines in dn_debug.h (located in sm_qsl/). |
Console Output Issue
Anchor | ||||
---|---|---|---|---|
|
The output from the debug terminal has been shown to periodically stop working on Windows (although this does not affect execution of the application itself). Disconnecting and reconnecting the ST-LINK USB seem to make it work again (although this will of course reset both the Nucleo board and connected mote). If you still don't see any output when you should you can try the following:
...
Note |
---|
The System Workbench project expects to find the sm_clib and sm_qsl as they appear in the Directory Structure. If you chose the zip download or subversion checkout, the sm_clib/ directory from the separate unzipped folder/svn checkout need to be copied into the QSL repository to achieve the same structure. |
Build
Project > Build Project (or press the icon) to build the project.
Tip |
---|
Note |
By default Eclipse will index unused headers, causing some errors that don't affect compilation. You can remove these by disabling the option in project properties: |
Build
Project > Build Project (or press the icon) to build the project.
Debug/Run
The first time you run the project, you have to select the correct debug configuration:
...
Other than the files that implement the necessary porting functions (i.e. dn_uart.c, dn_lock.c, dn_endianness.c, dn_time.c and dn_watchdog.c), all the platform specific source and header files are auto-have been generated with STM32CubeMX. In addition, all any user code in added to these generated files has been placed between "USER CODE BEGIN xxx" and "USER CODE END xxx" comments, which will be is left unchanged if you make changes to the STM32CubeMX project and generate new code. Therefore, the STM32CubeMX project files used to generate code for the example has been included in the repository:
...
This means that you can add or change features included in the generated HAL code by simply opening SimplePublish.ioc in STMCubeMX, make the necessary changes and generate new code.
Info |
---|
STM32CubeMX is available for Windows, Linux and OS X. |
Panel |
---|
Absolute Path IssueThere are 3 paths saved in the above STM32CubeMX files that are saved as absolute paths:
These have been manually changed to relative paths, which allows you to run them from wherever you extracted the repository. However, whenever you use them to generate code, the paths will be resolved back to absolute paths. |
Change Toolchain/IDE
Anchor | ||||
---|---|---|---|---|
|
...
Unfortunately, you can not simply change platform in generate code for another platform by changing the STM32CubeMX settings and generate code for another MCUfor an existing project. What you can do instead is to create a new STM32CubeMX project, select the platform of your choice and configure the same settings as in the provided project. Other than activating the two USARTs and correctly configuring their parameters, the default settings should do the trick (make sure to also have a look at the project settings before generating code).
...
- main.c
- usart.c/.h
- stm32l0xx_it.c
...