X-CUBE-SPN1-20150128 example source code for one motor compiled under mbed. Tested OK on Nucleo F401. l6474.cpp is modified from original with defines in l6474_target_config.h to select the original behaviour (motor de-energised when halted), or new mode to continue powering with a (reduced) current in the coils (braking/position hold capability). On F401 avoid using mbed's InterruptIn on pins 10-15 (any port). Beware of other conflicts! L0 & F0 are included but untested.

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
gregeric
Date:
Fri Sep 18 08:44:48 2015 +0000
Parent:
0:b9444a40a999
Child:
2:d6f513e1313b
Commit message:
Moved & renamed main.h to ihm01a1.h

Changed in this revision

IHM01A1/ihm01a1.h Show annotated file Show diff for this revision Revisions of this file
IHM01A1/stm32f0xx_it.cpp Show annotated file Show diff for this revision Revisions of this file
IHM01A1/stm32f0xx_nucleo_ihm01a1.h Show annotated file Show diff for this revision Revisions of this file
IHM01A1/stm32l0xx_hal_msp.cpp Show annotated file Show diff for this revision Revisions of this file
IHM01A1/stm32l0xx_it.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IHM01A1/ihm01a1.h	Fri Sep 18 08:44:48 2015 +0000
@@ -0,0 +1,65 @@
+
+/**
+  ******************************************************************************
+  * @file    Multi/Examples/MotionControl/IHM01A1_ExampleFor1Motor/Inc/main.h
+  * @author  IPC Rennes
+  * @version V1.5.0
+  * @date    November 12, 2014
+  * @brief   Header for main.c module
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+  *
+  * Redistribution and use in source and binary forms, with or without modification,
+  * are permitted provided that the following conditions are met:
+  *   1. Redistributions of source code must retain the above copyright notice,
+  *      this list of conditions and the following disclaimer.
+  *   2. Redistributions in binary form must reproduce the above copyright notice,
+  *      this list of conditions and the following disclaimer in the documentation
+  *      and/or other materials provided with the distribution.
+  *   3. Neither the name of STMicroelectronics nor the names of its contributors
+  *      may be used to endorse or promote products derived from this software
+  *      without specific prior written permission.
+  *
+  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+  ******************************************************************************
+  */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MAIN_H
+#define __MAIN_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "motorcontrol.h"
+#include "l6474.h"
+
+#if defined TARGET_STM32F4
+#include "stm32f4xx_nucleo_ihm01a1.h"
+#elif defined TARGET_STM32F0
+#include "stm32f0xx_nucleo_ihm01a1.h"
+#elif defined TARGET_STM32L0
+#include "stm32l0xx_nucleo_ihm01a1.h"
+#else
+#error Unknown Target: only STM32F0xx, F4xx, L0xx are supported.
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+void SystemClock_Config(void);
+void Error_Handler(uint16_t error);
+
+#endif /* __MAIN_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
--- a/IHM01A1/stm32f0xx_it.cpp	Sat Sep 05 20:18:14 2015 +0000
+++ b/IHM01A1/stm32f0xx_it.cpp	Fri Sep 18 08:44:48 2015 +0000
@@ -107,10 +107,13 @@
   * @param  None
   * @retval None
   */
+
+// defined in mbed/target/cmsis/stm/stm32f032/.. system_stm32f0xx.c
 void SysTick_Handler(void)
 {
   HAL_IncTick();
 }
+//
 
 /******************************************************************************/
 /*                 STM32F0xx Peripherals Interrupt Handlers                   */
--- a/IHM01A1/stm32f0xx_nucleo_ihm01a1.h	Sat Sep 05 20:18:14 2015 +0000
+++ b/IHM01A1/stm32f0xx_nucleo_ihm01a1.h	Fri Sep 18 08:44:48 2015 +0000
@@ -44,6 +44,8 @@
  extern "C" {
 #endif
 
+#define BSP_MOTOR_CONTROL_BOARD_USE_SPI2
+
 /* Includes ------------------------------------------------------------------*/
 //mbed #include "stm32f0xx_nucleo.h"
    
--- a/IHM01A1/stm32l0xx_hal_msp.cpp	Sat Sep 05 20:18:14 2015 +0000
+++ b/IHM01A1/stm32l0xx_hal_msp.cpp	Fri Sep 18 08:44:48 2015 +0000
@@ -36,7 +36,7 @@
   */ 
 #ifdef TARGET_STM32L0
 /* Includes ------------------------------------------------------------------*/
-#include "main.h"
+#include "ihm01a1.h"
 #include "mbed.h"
 
 /** @defgroup HAL_MSP
--- a/IHM01A1/stm32l0xx_it.h	Sat Sep 05 20:18:14 2015 +0000
+++ b/IHM01A1/stm32l0xx_it.h	Fri Sep 18 08:44:48 2015 +0000
@@ -44,7 +44,7 @@
 #endif 
 
 /* Includes ------------------------------------------------------------------*/
-#include "main.h"
+#include "ihm01a1.h"
 
 /* Exported types ------------------------------------------------------------*/
 /* Exported constants --------------------------------------------------------*/
--- a/main.cpp	Sat Sep 05 20:18:14 2015 +0000
+++ b/main.cpp	Fri Sep 18 08:44:48 2015 +0000
@@ -37,7 +37,7 @@
 
 /* Includes ------------------------------------------------------------------*/
 #include "mbed.h"
-#include "main.h"
+#include "ihm01a1.h"
 
 /** @defgroup IHM01A1_Example_for_1_motor_device
   * @{
--- a/main.h	Sat Sep 05 20:18:14 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-
-/**
-  ******************************************************************************
-  * @file    Multi/Examples/MotionControl/IHM01A1_ExampleFor1Motor/Inc/main.h
-  * @author  IPC Rennes
-  * @version V1.5.0
-  * @date    November 12, 2014
-  * @brief   Header for main.c module
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __MAIN_H
-#define __MAIN_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "motorcontrol.h"
-#include "l6474.h"
-
-#if defined TARGET_STM32F4
-#include "stm32f4xx_nucleo_ihm01a1.h"
-#elif defined TARGET_STM32F0
-#include "stm32f0xx_nucleo_ihm01a1.h"
-#elif defined TARGET_STM32L0
-#include "stm32l0xx_nucleo_ihm01a1.h"
-#else
-#error Unknown Target: only STM32F0xx, F4xx, L0xx are supported.
-#endif
-
-/* Exported types ------------------------------------------------------------*/
-/* Exported constants --------------------------------------------------------*/
-/* Exported functions ------------------------------------------------------- */
-void SystemClock_Config(void);
-void Error_Handler(uint16_t error);
-
-#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
--- a/mbed.bld	Sat Sep 05 20:18:14 2015 +0000
+++ b/mbed.bld	Fri Sep 18 08:44:48 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/ba1f97679dad
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/7cff1c4259d7
\ No newline at end of file