mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-09-01 20:03:50 -04:00
Add two Cortex-M4F demo applications.
This commit is contained in:
parent
e7a1222c5f
commit
08ddd1d00d
102 changed files with 43902 additions and 0 deletions
172
Demo/CORTEX_M4F_STM32F407ZG-SK/board/arm_comm.h
Normal file
172
Demo/CORTEX_M4F_STM32F407ZG-SK/board/arm_comm.h
Normal file
|
@ -0,0 +1,172 @@
|
|||
/***************************************************************************
|
||||
**
|
||||
** Common definition for IAR EW ARM
|
||||
**
|
||||
** Used with ARM IAR C/C++ Compiler and Assembler.
|
||||
**
|
||||
** (c) Copyright IAR Systems 2006
|
||||
**
|
||||
** $Revision: 48478 $
|
||||
**
|
||||
***************************************************************************/
|
||||
#include <intrinsics.h>
|
||||
|
||||
#ifndef __ARM_COMM_DEF_H
|
||||
#define __ARM_COMM_DEF_H
|
||||
|
||||
#define MHZ *1000000l
|
||||
#define KHZ *1000l
|
||||
#define HZ *1l
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE (1 == 0)
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE (1 == 1)
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((void*)0)
|
||||
#endif
|
||||
|
||||
typedef double Flo64; // Double precision floating point
|
||||
typedef double * pFlo64;
|
||||
typedef float Flo32; // Single precision floating point
|
||||
typedef float * pFlo32;
|
||||
typedef signed long long Int64S; // Signed 64 bit quantity
|
||||
typedef signed long long * pInt64S;
|
||||
typedef unsigned long long Int64U; // Unsigned 64 bit quantity
|
||||
typedef unsigned long long * pInt64U;
|
||||
typedef signed int Int32S; // Signed 32 bit quantity
|
||||
typedef signed int * pInt32S;
|
||||
typedef unsigned int Int32U; // Unsigned 32 bit quantity
|
||||
typedef unsigned int * pInt32U;
|
||||
typedef signed short Int16S; // Signed 16 bit quantity
|
||||
typedef signed short * pInt16S;
|
||||
typedef unsigned short Int16U; // Unsigned 16 bit quantity
|
||||
typedef unsigned short * pInt16U;
|
||||
typedef signed char Int8S; // Signed 8 bit quantity
|
||||
typedef signed char * pInt8S;
|
||||
typedef unsigned char Int8U; // Unsigned 8 bit quantity
|
||||
typedef unsigned char * pInt8U;
|
||||
typedef unsigned int Boolean; // Boolean
|
||||
typedef unsigned int * pBoolean;
|
||||
|
||||
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
||||
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
||||
#define _2BL(a) (Int8U)(a),(Int8U)(a>>8)
|
||||
#define _2BB(a) (Int8U)(a>>8),(Int8U)(a),
|
||||
#define _3BL(a) (Int8U)(a),(Int8U)(a>>8),(Int8U)(a>>16)
|
||||
#define _3BB(a) (Int8U)(a>>16),(Int8U)(a>>8),(Int8U)(a)
|
||||
#define _4BL(a) (Int8U)(a),(Int8U)(a>>8),(Int8U)(a>>16),(Int8U)(a>>24)
|
||||
#define _4BB(a) (Int8U)(a>>24),(Int8U)(a>>16),(Int8U)(a>>8),(Int8U)(a)
|
||||
|
||||
typedef void * (*CommUserFpnt_t)(void *);
|
||||
typedef void (*VoidFpnt_t)(void);
|
||||
|
||||
// Atomic exchange of data between a memory cell and a register
|
||||
// return value of the memory cell
|
||||
#if __CORE__ < 7
|
||||
inline __arm Int32U AtomicExchange (Int32U State, pInt32U Flag)
|
||||
{
|
||||
asm("swp r0, r0, [r1]");
|
||||
return(State);
|
||||
}
|
||||
|
||||
#define IRQ_FLAG 0x80
|
||||
#define FIQ_FLAG 0x40
|
||||
|
||||
inline __arm Int32U EntrCritSection(void)
|
||||
{
|
||||
unsigned long tmp;
|
||||
tmp = __get_CPSR();
|
||||
__set_CPSR(tmp | IRQ_FLAG);
|
||||
return(tmp);
|
||||
}
|
||||
|
||||
inline __arm void ExtCritSection(Int32U Save)
|
||||
{
|
||||
unsigned long tmp;
|
||||
tmp = __get_CPSR();
|
||||
__set_CPSR(tmp & (Save | ~IRQ_FLAG));
|
||||
}
|
||||
|
||||
inline __arm Int32U EntrCritSectionFiq(void)
|
||||
{
|
||||
unsigned long tmp;
|
||||
tmp = __get_CPSR();
|
||||
__set_CPSR(tmp | (IRQ_FLAG | FIQ_FLAG));
|
||||
return(tmp);
|
||||
}
|
||||
|
||||
inline __arm void ExtCritSectionFiq(Int32U Save)
|
||||
{
|
||||
unsigned long tmp;
|
||||
tmp = __get_CPSR();
|
||||
__set_CPSR(tmp & (Save | ~(IRQ_FLAG | FIQ_FLAG)));
|
||||
}
|
||||
|
||||
#define ENTR_CRT_SECTION(Save) Save = EntrCritSection()
|
||||
#define EXT_CRT_SECTION(Save) ExtCritSection(Save)
|
||||
|
||||
#define ENTR_CRT_SECTION_F(Save) Save = EntrCritSectionFiq()
|
||||
#define EXT_CRT_SECTION_F(Save) ExtCritSectionFiq(Save)
|
||||
|
||||
#elif ((__CORE__ == __ARM6M__) || (__CORE__ == __ARM6SM__) || (__CORE__ == __ARM7M__) || (__CORE__ == __ARM7EM__))
|
||||
|
||||
extern Int32U CriticalSecCntr;
|
||||
|
||||
inline void EntrCritSection(void)
|
||||
{
|
||||
if(CriticalSecCntr == 0)
|
||||
{
|
||||
asm("CPSID i");
|
||||
}
|
||||
// avoid lost of one count in case of simultaneously calling from both places
|
||||
++CriticalSecCntr;
|
||||
}
|
||||
|
||||
inline void ExtCritSection(void)
|
||||
{
|
||||
if(--CriticalSecCntr == 0)
|
||||
{
|
||||
asm("CPSIE i");
|
||||
}
|
||||
}
|
||||
|
||||
inline Int32U AtomicExchange (Int32U State, pInt32U Flag)
|
||||
{
|
||||
Int32U Hold;
|
||||
EntrCritSection();
|
||||
Hold = *Flag;
|
||||
*Flag = State;
|
||||
ExtCritSection();
|
||||
return(Hold);
|
||||
}
|
||||
|
||||
#define ENTR_CRT_SECTION() EntrCritSection()
|
||||
#define EXT_CRT_SECTION() ExtCritSection()
|
||||
#endif
|
||||
|
||||
#define LongToBin(n) (((n >> 21) & 0x80) | \
|
||||
((n >> 18) & 0x40) | \
|
||||
((n >> 15) & 0x20) | \
|
||||
((n >> 12) & 0x10) | \
|
||||
((n >> 9) & 0x08) | \
|
||||
((n >> 6) & 0x04) | \
|
||||
((n >> 3) & 0x02) | \
|
||||
((n ) & 0x01))
|
||||
|
||||
#define __BIN(n) LongToBin(0x##n##l)
|
||||
|
||||
#define BIN8(n) __BIN(n)
|
||||
#define BIN(n) __BIN(n)
|
||||
#define BIN16(b1,b2) (( __BIN(b1) << 8UL) + \
|
||||
__BIN(b2))
|
||||
#define BIN32(b1,b2,b3,b4) ((((Int32U)__BIN(b1)) << 24UL) + \
|
||||
(((Int32U)__BIN(b2)) << 16UL) + \
|
||||
(((Int32U)__BIN(b3)) << 8UL) + \
|
||||
(Int32U)__BIN(b4))
|
||||
|
||||
#endif // __ARM_COMM_DEF_H
|
330
Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.c
Normal file
330
Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.c
Normal file
|
@ -0,0 +1,330 @@
|
|||
/**/
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "iar_stm32f407zg_sk.h"
|
||||
|
||||
/**
|
||||
* @{
|
||||
*/
|
||||
GPIO_TypeDef* GPIO_PORT[LEDn] = {LED1_GPIO_PORT, LED2_GPIO_PORT, LED3_GPIO_PORT,
|
||||
LED4_GPIO_PORT};
|
||||
const uint16_t GPIO_PIN[LEDn] = {LED1_PIN, LED2_PIN, LED3_PIN,
|
||||
LED4_PIN};
|
||||
const uint32_t GPIO_CLK[LEDn] = {LED1_GPIO_CLK, LED2_GPIO_CLK, LED3_GPIO_CLK,
|
||||
LED4_GPIO_CLK};
|
||||
|
||||
GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {WAKEUP_BUTTON_GPIO_PORT, TAMPER_BUTTON_GPIO_PORT,
|
||||
USER_BUTTON_GPIO_PORT,RIGHT_BUTTON_GPIO_PORT, LEFT_BUTTON_GPIO_PORT,
|
||||
UP_BUTTON_GPIO_PORT,DOWN_BUTTON_GPIO_PORT, SEL_BUTTON_GPIO_PORT};
|
||||
|
||||
const uint16_t BUTTON_PIN[BUTTONn] = {WAKEUP_BUTTON_PIN, TAMPER_BUTTON_PIN,
|
||||
USER_BUTTON_PIN,RIGHT_BUTTON_PIN, LEFT_BUTTON_PIN,
|
||||
UP_BUTTON_PIN,DOWN_BUTTON_PIN, SEL_BUTTON_PIN};
|
||||
|
||||
const uint32_t BUTTON_CLK[BUTTONn] = {WAKEUP_BUTTON_GPIO_CLK, TAMPER_BUTTON_GPIO_CLK,
|
||||
USER_BUTTON_GPIO_CLK,RIGHT_BUTTON_GPIO_CLK, LEFT_BUTTON_GPIO_CLK,
|
||||
UP_BUTTON_GPIO_CLK,DOWN_BUTTON_GPIO_CLK, SEL_BUTTON_GPIO_CLK};
|
||||
|
||||
const uint16_t BUTTON_EXTI_LINE[BUTTONn] = {WAKEUP_BUTTON_EXTI_LINE,
|
||||
TAMPER_BUTTON_EXTI_LINE,
|
||||
USER_BUTTON_EXTI_LINE,
|
||||
RIGHT_BUTTON_EXTI_LINE,
|
||||
LEFT_BUTTON_EXTI_LINE,
|
||||
UP_BUTTON_EXTI_LINE,
|
||||
DOWN_BUTTON_EXTI_LINE,
|
||||
SEL_BUTTON_EXTI_LINE};
|
||||
|
||||
const uint16_t BUTTON_PORT_SOURCE[BUTTONn] = {WAKEUP_BUTTON_EXTI_PORT_SOURCE,
|
||||
TAMPER_BUTTON_EXTI_PORT_SOURCE,
|
||||
USER_BUTTON_EXTI_PORT_SOURCE,
|
||||
RIGHT_BUTTON_EXTI_PORT_SOURCE,
|
||||
LEFT_BUTTON_EXTI_PORT_SOURCE,
|
||||
UP_BUTTON_EXTI_PORT_SOURCE,
|
||||
DOWN_BUTTON_EXTI_PORT_SOURCE,
|
||||
SEL_BUTTON_EXTI_PORT_SOURCE};
|
||||
|
||||
const uint16_t BUTTON_PIN_SOURCE[BUTTONn] = {WAKEUP_BUTTON_EXTI_PIN_SOURCE,
|
||||
TAMPER_BUTTON_EXTI_PIN_SOURCE,
|
||||
USER_BUTTON_EXTI_PIN_SOURCE,
|
||||
RIGHT_BUTTON_EXTI_PIN_SOURCE,
|
||||
LEFT_BUTTON_EXTI_PIN_SOURCE,
|
||||
UP_BUTTON_EXTI_PIN_SOURCE,
|
||||
DOWN_BUTTON_EXTI_PIN_SOURCE,
|
||||
SEL_BUTTON_EXTI_PIN_SOURCE};
|
||||
const uint16_t BUTTON_IRQn[BUTTONn] = {WAKEUP_BUTTON_EXTI_IRQn, TAMPER_BUTTON_EXTI_IRQn,
|
||||
USER_BUTTON_EXTI_IRQn,RIGHT_BUTTON_EXTI_IRQn,
|
||||
LEFT_BUTTON_EXTI_IRQn, UP_BUTTON_EXTI_IRQn,
|
||||
DOWN_BUTTON_EXTI_IRQn, SEL_BUTTON_EXTI_IRQn};
|
||||
|
||||
USART_TypeDef* COM_USART[COMn] = {EVAL_COM1,EVAL_COM2};
|
||||
|
||||
GPIO_TypeDef* COM_TX_PORT[COMn] = {EVAL_COM1_TX_GPIO_PORT, EVAL_COM2_TX_GPIO_PORT};
|
||||
|
||||
GPIO_TypeDef* COM_RX_PORT[COMn] = {EVAL_COM1_RX_GPIO_PORT,EVAL_COM2_RX_GPIO_PORT};
|
||||
|
||||
const uint32_t COM_USART_CLK[COMn] = {EVAL_COM1_CLK,EVAL_COM2_CLK};
|
||||
|
||||
const uint32_t COM_TX_PORT_CLK[COMn] = {EVAL_COM1_TX_GPIO_CLK,EVAL_COM2_TX_GPIO_CLK};
|
||||
|
||||
const uint32_t COM_RX_PORT_CLK[COMn] = {EVAL_COM1_RX_GPIO_CLK, EVAL_COM2_RX_GPIO_CLK};
|
||||
|
||||
const uint16_t COM_TX_PIN[COMn] = {EVAL_COM1_TX_PIN, EVAL_COM2_TX_PIN};
|
||||
|
||||
const uint16_t COM_RX_PIN[COMn] = {EVAL_COM1_RX_PIN, EVAL_COM2_RX_PIN};
|
||||
|
||||
const uint16_t COM_TX_PIN_SOURCE[COMn] = {EVAL_COM1_TX_SOURCE, EVAL_COM2_TX_SOURCE};
|
||||
|
||||
const uint16_t COM_RX_PIN_SOURCE[COMn] = {EVAL_COM1_RX_SOURCE, EVAL_COM1_RX_SOURCE};
|
||||
|
||||
const uint16_t COM_TX_AF[COMn] = {EVAL_COM1_TX_AF, EVAL_COM2_TX_AF};
|
||||
|
||||
const uint16_t COM_RX_AF[COMn] = {EVAL_COM1_RX_AF, EVAL_COM2_RX_AF};
|
||||
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
void STM_EVAL_GPIOReset(void)
|
||||
{
|
||||
GPIO_DeInit(GPIOA);
|
||||
GPIO_DeInit(GPIOB);
|
||||
GPIO_DeInit(GPIOC);
|
||||
GPIO_DeInit(GPIOD);
|
||||
GPIO_DeInit(GPIOE);
|
||||
GPIO_DeInit(GPIOF);
|
||||
GPIO_DeInit(GPIOG);
|
||||
GPIO_DeInit(GPIOH);
|
||||
GPIO_DeInit(GPIOI);
|
||||
}
|
||||
/**
|
||||
* @brief Configures LED GPIO.
|
||||
* @param Led: Specifies the Led to be configured.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg LED1
|
||||
* @arg LED2
|
||||
* @arg LED3
|
||||
* @arg LED4
|
||||
* @retval None
|
||||
*/
|
||||
void STM_EVAL_LEDInit(Led_TypeDef Led)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
/* Enable the GPIO_LED Clock */
|
||||
RCC_AHB1PeriphClockCmd(GPIO_CLK[Led], ENABLE);
|
||||
|
||||
|
||||
/* Configure the GPIO_LED pin */
|
||||
GPIO_InitStructure.GPIO_Pin = GPIO_PIN[Led];
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Turns selected LED On.
|
||||
* @param Led: Specifies the Led to be set on.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg LED1
|
||||
* @arg LED2
|
||||
* @arg LED3
|
||||
* @arg LED4
|
||||
* @retval None
|
||||
*/
|
||||
void STM_EVAL_LEDOn(Led_TypeDef Led)
|
||||
{
|
||||
GPIO_PORT[Led]->BSRRL = GPIO_PIN[Led];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Turns selected LED Off.
|
||||
* @param Led: Specifies the Led to be set off.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg LED1
|
||||
* @arg LED2
|
||||
* @arg LED3
|
||||
* @arg LED4
|
||||
* @retval None
|
||||
*/
|
||||
void STM_EVAL_LEDOff(Led_TypeDef Led)
|
||||
{
|
||||
GPIO_PORT[Led]->BSRRH = GPIO_PIN[Led];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Toggles the selected LED.
|
||||
* @param Led: Specifies the Led to be toggled.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg LED1
|
||||
* @arg LED2
|
||||
* @arg LED3
|
||||
* @arg LED4
|
||||
* @retval None
|
||||
*/
|
||||
void STM_EVAL_LEDToggle(Led_TypeDef Led)
|
||||
{
|
||||
GPIO_PORT[Led]->ODR ^= GPIO_PIN[Led];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Configures Button GPIO and EXTI Line.
|
||||
* @param Button: Specifies the Button to be configured.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg BUTTON_WAKEUP: Wakeup Push Button
|
||||
* @arg BUTTON_TAMPER: Tamper Push Button
|
||||
* @arg BUTTON_KEY: Key Push Button
|
||||
* @arg BUTTON_RIGHT: Joystick Right Push Button
|
||||
* @arg BUTTON_LEFT: Joystick Left Push Button
|
||||
* @arg BUTTON_UP: Joystick Up Push Button
|
||||
* @arg BUTTON_DOWN: Joystick Down Push Button
|
||||
* @arg BUTTON_SEL: Joystick Sel Push Button
|
||||
* @param Button_Mode: Specifies Button mode.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg BUTTON_MODE_GPIO: Button will be used as simple IO
|
||||
* @arg BUTTON_MODE_EXTI: Button will be connected to EXTI line with interrupt
|
||||
* generation capability
|
||||
* @retval None
|
||||
*/
|
||||
void STM_EVAL_PBInit(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
EXTI_InitTypeDef EXTI_InitStructure;
|
||||
NVIC_InitTypeDef NVIC_InitStructure;
|
||||
|
||||
|
||||
/* Enable the BUTTON Clock */
|
||||
RCC_AHB1PeriphClockCmd(BUTTON_CLK[Button], ENABLE);
|
||||
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
|
||||
|
||||
/* Configure Button pin as input */
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_InitStructure.GPIO_Pin = BUTTON_PIN[Button];
|
||||
GPIO_Init(BUTTON_PORT[Button], &GPIO_InitStructure);
|
||||
|
||||
|
||||
if (Button_Mode == BUTTON_MODE_EXTI)
|
||||
{
|
||||
/* Connect Button EXTI Line to Button GPIO Pin */
|
||||
SYSCFG_EXTILineConfig(BUTTON_PORT_SOURCE[Button], BUTTON_PIN_SOURCE[Button]);
|
||||
|
||||
/* Configure Button EXTI line */
|
||||
EXTI_InitStructure.EXTI_Line = BUTTON_EXTI_LINE[Button];
|
||||
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
|
||||
|
||||
if(Button != BUTTON_WAKEUP)
|
||||
{
|
||||
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
|
||||
}
|
||||
else
|
||||
{
|
||||
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
|
||||
}
|
||||
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
|
||||
EXTI_Init(&EXTI_InitStructure);
|
||||
|
||||
/* Enable and set Button EXTI Interrupt to the lowest priority */
|
||||
NVIC_InitStructure.NVIC_IRQChannel = BUTTON_IRQn[Button];
|
||||
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
|
||||
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
|
||||
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
||||
|
||||
NVIC_Init(&NVIC_InitStructure);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns the selected Button state.
|
||||
* @param Button: Specifies the Button to be checked.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg BUTTON_WAKEUP: Wakeup Push Button
|
||||
* @arg BUTTON_TAMPER: Tamper Push Button
|
||||
* @arg BUTTON_KEY: Key Push Button
|
||||
* @arg BUTTON_RIGHT: Joystick Right Push Button
|
||||
* @arg BUTTON_LEFT: Joystick Left Push Button
|
||||
* @arg BUTTON_UP: Joystick Up Push Button
|
||||
* @arg BUTTON_DOWN: Joystick Down Push Button
|
||||
* @arg BUTTON_SEL: Joystick Sel Push Button
|
||||
* @retval The Button GPIO pin value.
|
||||
*/
|
||||
uint32_t STM_EVAL_PBGetState(Button_TypeDef Button)
|
||||
{
|
||||
return GPIO_ReadInputDataBit(BUTTON_PORT[Button], BUTTON_PIN[Button]);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Configures COM port.
|
||||
* @param COM: Specifies the COM port to be configured.
|
||||
* This parameter can be one of following parameters:
|
||||
* @arg COM1
|
||||
* @arg COM2
|
||||
* @param USART_InitStruct: pointer to a USART_InitTypeDef structure that
|
||||
* contains the configuration information for the specified USART peripheral.
|
||||
* @retval None
|
||||
*/
|
||||
void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* USART_InitStruct)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStructure;
|
||||
|
||||
/* Enable GPIO clock */
|
||||
RCC_AHB1PeriphClockCmd(COM_TX_PORT_CLK[COM] | COM_RX_PORT_CLK[COM], ENABLE);
|
||||
|
||||
if (COM == COM1)
|
||||
{
|
||||
/* Enable UART clock */
|
||||
RCC_APB2PeriphClockCmd(COM_USART_CLK[COM], ENABLE);
|
||||
}
|
||||
|
||||
/* Connect PXx to USARTx_Tx*/
|
||||
GPIO_PinAFConfig(COM_TX_PORT[COM], COM_TX_PIN_SOURCE[COM], COM_TX_AF[COM]);
|
||||
|
||||
/* Connect PXx to USARTx_Rx*/
|
||||
GPIO_PinAFConfig(COM_RX_PORT[COM], COM_RX_PIN_SOURCE[COM], COM_RX_AF[COM]);
|
||||
|
||||
/* Configure USART Tx as alternate function */
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
|
||||
GPIO_InitStructure.GPIO_Pin = COM_TX_PIN[COM];
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
||||
GPIO_Init(COM_TX_PORT[COM], &GPIO_InitStructure);
|
||||
|
||||
/* Configure USART Rx as alternate function */
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
|
||||
GPIO_InitStructure.GPIO_Pin = COM_RX_PIN[COM];
|
||||
GPIO_Init(COM_RX_PORT[COM], &GPIO_InitStructure);
|
||||
|
||||
/* USART configuration */
|
||||
USART_Init(COM_USART[COM], USART_InitStruct);
|
||||
|
||||
/* Enable USART */
|
||||
USART_Cmd(COM_USART[COM], ENABLE);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
|
430
Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h
Normal file
430
Demo/CORTEX_M4F_STM32F407ZG-SK/board/iar_stm32f407zg_sk.h
Normal file
|
@ -0,0 +1,430 @@
|
|||
/**
|
||||
******************************************************************************
|
||||
* @file iar_stm32f407zg_sk.h
|
||||
* @brief This file contains definitions for Leds, push-buttons
|
||||
* and COM ports hardware resources.
|
||||
******************************************************************************
|
||||
* @copy
|
||||
*
|
||||
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
||||
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
||||
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
||||
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
||||
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
||||
*
|
||||
* <h2><center>© COPYRIGHT 2010 STMicroelectronics</center></h2>
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __IAR_STM32F407ZG_SK_H
|
||||
#define __IAR_STM32F407ZG_SK_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "stm32f4xx.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
LED1 = 0,
|
||||
LED2 = 1,
|
||||
LED3 = 2,
|
||||
LED4 = 3
|
||||
} Led_TypeDef;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BUTTON_WAKEUP = 0,
|
||||
BUTTON_TAMPER = 1,
|
||||
BUTTON_USER = 2,
|
||||
BUTTON_RIGHT = 3,
|
||||
BUTTON_LEFT = 4,
|
||||
BUTTON_UP = 5,
|
||||
BUTTON_DOWN = 6,
|
||||
BUTTON_SEL = 7
|
||||
} Button_TypeDef;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BUTTON_MODE_GPIO = 0,
|
||||
BUTTON_MODE_EXTI = 1
|
||||
} ButtonMode_TypeDef;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
COM1 = 0,
|
||||
COM2 = 1
|
||||
} COM_TypeDef;
|
||||
|
||||
#define LEDn 4
|
||||
|
||||
#define LED1_PIN GPIO_Pin_6
|
||||
#define LED1_GPIO_PORT GPIOF
|
||||
#define LED1_GPIO_CLK RCC_AHB1Periph_GPIOF
|
||||
|
||||
#define LED2_PIN GPIO_Pin_7
|
||||
#define LED2_GPIO_PORT GPIOF
|
||||
#define LED2_GPIO_CLK RCC_AHB1Periph_GPIOF
|
||||
|
||||
#define LED3_PIN GPIO_Pin_8
|
||||
#define LED3_GPIO_PORT GPIOF
|
||||
#define LED3_GPIO_CLK RCC_AHB1Periph_GPIOF
|
||||
|
||||
#define LED4_PIN GPIO_Pin_9
|
||||
#define LED4_GPIO_PORT GPIOF
|
||||
#define LED4_GPIO_CLK RCC_AHB1Periph_GPIOF
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_BUTTON
|
||||
* @{
|
||||
*/
|
||||
#define BUTTONn 8 /**/
|
||||
|
||||
/**
|
||||
* @brief Wakeup push-button
|
||||
*/
|
||||
#define WAKEUP_BUTTON_PIN GPIO_Pin_0
|
||||
#define WAKEUP_BUTTON_GPIO_PORT GPIOA
|
||||
#define WAKEUP_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOA
|
||||
#define WAKEUP_BUTTON_EXTI_LINE EXTI_Line0
|
||||
#define WAKEUP_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOA
|
||||
#define WAKEUP_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource0
|
||||
#define WAKEUP_BUTTON_EXTI_IRQn EXTI0_IRQn
|
||||
|
||||
/**
|
||||
* @brief Tamper push-button
|
||||
*/
|
||||
#define TAMPER_BUTTON_PIN GPIO_Pin_13
|
||||
#define TAMPER_BUTTON_GPIO_PORT GPIOC
|
||||
#define TAMPER_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOC
|
||||
#define TAMPER_BUTTON_EXTI_LINE EXTI_Line13
|
||||
#define TAMPER_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOC
|
||||
#define TAMPER_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource13
|
||||
#define TAMPER_BUTTON_EXTI_IRQn EXTI15_10_IRQn
|
||||
|
||||
/**
|
||||
* @brief Key push-button
|
||||
*/
|
||||
#define USER_BUTTON_PIN GPIO_Pin_6
|
||||
#define USER_BUTTON_GPIO_PORT GPIOG
|
||||
#define USER_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOG
|
||||
#define USER_BUTTON_EXTI_LINE EXTI_Line6
|
||||
#define USER_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOG
|
||||
#define USER_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource6
|
||||
#define USER_BUTTON_EXTI_IRQn EXTI9_5_IRQn
|
||||
/**
|
||||
* @brief Joystick Right
|
||||
*/
|
||||
#define RIGHT_BUTTON_PIN GPIO_Pin_3
|
||||
#define RIGHT_BUTTON_GPIO_PORT GPIOC
|
||||
#define RIGHT_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOC
|
||||
#define RIGHT_BUTTON_EXTI_LINE EXTI_Line3
|
||||
#define RIGHT_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOC
|
||||
#define RIGHT_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource3
|
||||
#define RIGHT_BUTTON_EXTI_IRQn EXTI3_IRQn
|
||||
/**
|
||||
* @brief Joystick Left
|
||||
*/
|
||||
#define LEFT_BUTTON_PIN GPIO_Pin_11
|
||||
#define LEFT_BUTTON_GPIO_PORT GPIOG
|
||||
#define LEFT_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOG
|
||||
#define LEFT_BUTTON_EXTI_LINE EXTI_Line11
|
||||
#define LEFT_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOG
|
||||
#define LEFT_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource11
|
||||
#define LEFT_BUTTON_EXTI_IRQn EXTI15_10_IRQn
|
||||
/**
|
||||
* @brief Joystick Up
|
||||
*/
|
||||
#define UP_BUTTON_PIN GPIO_Pin_7
|
||||
#define UP_BUTTON_GPIO_PORT GPIOG
|
||||
#define UP_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOG
|
||||
#define UP_BUTTON_EXTI_LINE EXTI_Line7
|
||||
#define UP_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOG
|
||||
#define UP_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource7
|
||||
#define UP_BUTTON_EXTI_IRQn EXTI9_5_IRQn
|
||||
/**
|
||||
* @brief Joystick Down
|
||||
*/
|
||||
#define DOWN_BUTTON_PIN GPIO_Pin_8
|
||||
#define DOWN_BUTTON_GPIO_PORT GPIOG
|
||||
#define DOWN_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOG
|
||||
#define DOWN_BUTTON_EXTI_LINE EXTI_Line8
|
||||
#define DOWN_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOG
|
||||
#define DOWN_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource8
|
||||
#define DOWN_BUTTON_EXTI_IRQn EXTI9_5_IRQn
|
||||
/**
|
||||
* @brief Joystick Sel
|
||||
*/
|
||||
#define SEL_BUTTON_PIN GPIO_Pin_15
|
||||
#define SEL_BUTTON_GPIO_PORT GPIOG
|
||||
#define SEL_BUTTON_GPIO_CLK RCC_AHB1Periph_GPIOG
|
||||
#define SEL_BUTTON_EXTI_LINE EXTI_Line15
|
||||
#define SEL_BUTTON_EXTI_PORT_SOURCE EXTI_PortSourceGPIOG
|
||||
#define SEL_BUTTON_EXTI_PIN_SOURCE EXTI_PinSource15
|
||||
#define SEL_BUTTON_EXTI_IRQn EXTI15_10_IRQn
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_COM
|
||||
* @{
|
||||
*/
|
||||
#define COMn 2
|
||||
|
||||
/**
|
||||
* @brief Definition for COM port1, connected to USART6
|
||||
*/
|
||||
#define EVAL_COM1 USART6
|
||||
#define EVAL_COM1_CLK RCC_APB2Periph_USART6
|
||||
#define EVAL_COM1_TX_PIN GPIO_Pin_6
|
||||
#define EVAL_COM1_TX_GPIO_PORT GPIOC
|
||||
#define EVAL_COM1_TX_GPIO_CLK RCC_AHB1Periph_GPIOC
|
||||
#define EVAL_COM1_TX_SOURCE GPIO_PinSource6
|
||||
#define EVAL_COM1_TX_AF GPIO_AF_USART6
|
||||
#define EVAL_COM1_RX_PIN GPIO_Pin_9
|
||||
#define EVAL_COM1_RX_GPIO_PORT GPIOG
|
||||
#define EVAL_COM1_RX_GPIO_CLK RCC_AHB1Periph_GPIOG
|
||||
#define EVAL_COM1_RX_SOURCE GPIO_PinSource9
|
||||
#define EVAL_COM1_RX_AF GPIO_AF_USART6
|
||||
#define EVAL_COM1_IRQn USART6_IRQn
|
||||
|
||||
/**
|
||||
* @brief Definition for COM port2, connected to USART3
|
||||
*/
|
||||
#define EVAL_COM2 USART3
|
||||
#define EVAL_COM2_CLK RCC_APB1Periph_USART3
|
||||
#define EVAL_COM2_TX_PIN GPIO_Pin_8
|
||||
#define EVAL_COM2_TX_GPIO_PORT GPIOD
|
||||
#define EVAL_COM2_TX_GPIO_CLK RCC_AHB1Periph_GPIOD
|
||||
#define EVAL_COM2_TX_SOURCE GPIO_PinSource8
|
||||
#define EVAL_COM2_TX_AF GPIO_AF_USART3
|
||||
#define EVAL_COM2_RX_PIN GPIO_Pin_9
|
||||
#define EVAL_COM2_RX_GPIO_PORT GPIOD
|
||||
#define EVAL_COM2_RX_GPIO_CLK RCC_AHB1Periph_GPIOD
|
||||
#define EVAL_COM2_RX_SOURCE GPIO_PinSource9
|
||||
#define EVAL_COM2_RX_AF GPIO_AF_USART3
|
||||
#define EVAL_COM2_RTS_PIN GPIO_Pin_12
|
||||
#define EVAL_COM2_RTS_GPIO_PORT GPIOD
|
||||
#define EVAL_COM2_RTS_GPIO_CLK RCC_AHB1Periph_GPIOD
|
||||
#define EVAL_COM2_RTS_SOURCE GPIO_PinSource12
|
||||
#define EVAL_COM2_RTS_AF GPIO_AF_USART3
|
||||
#define EVAL_COM2_CTS_PIN GPIO_Pin_11
|
||||
#define EVAL_COM2_CTS_GPIO_PORT GPIOD
|
||||
#define EVAL_COM2_CTS_GPIO_CLK RCC_AHB1Periph_GPIOD
|
||||
#define EVAL_COM2_CTS_SOURCE GPIO_PinSource11
|
||||
#define EVAL_COM2_CTS_AF GPIO_AF_USART3
|
||||
#define EVAL_COM2_IRQn USART3_IRQn
|
||||
|
||||
/**
|
||||
* @BUZZER
|
||||
*/
|
||||
#define BUZZER_GPIO_PIN GPIO_Pin_10
|
||||
#define BUZZER_GPIO_PORT GPIOA
|
||||
#define BUZZER_GPIO_CLK RCC_AHB1Periph_GPIOA
|
||||
#define BUZZER_PIN_SOURCE GPIO_PinSource10
|
||||
#define BUZZER_TIM TIM1
|
||||
#define RCC_APB2PERIPH_BUZZER_TIM RCC_APB2Periph_TIM1
|
||||
#define BUZZER_PIN_AF GPIO_AF_TIM1
|
||||
|
||||
/**
|
||||
* @USB OTG
|
||||
*/
|
||||
#define OTG_FS_VBUS_PIN GPIO_Pin_9
|
||||
#define OTG_FS_VBUS_PORT GPIOA
|
||||
#define OTG_FS_VBUS_CLK RCC_AHB1Periph_GPIOA
|
||||
#define OTG_FS_VBUS_SOURCE GPIO_PinSource9
|
||||
|
||||
#define USB_FS_VBUSON_PIN GPIO_Pin_2
|
||||
#define USB_FS_VBUSON_PORT GPIOC
|
||||
#define USB_FS_VBUSON_CLK RCC_AHB1Periph_GPIOC
|
||||
#define USB_FS_VBUSON_SOURCE GPIO_PinSource2
|
||||
|
||||
#define USB_FS_FAULT_PIN GPIO_Pin_10
|
||||
#define USB_FS_FAULT_PORT GPIOB
|
||||
#define USB_FS_FAULT_CLK RCC_AHB1Periph_GPIOB
|
||||
#define USB_FS_FAULT_SOURCE GPIO_PinSource10
|
||||
|
||||
/**
|
||||
* @USB HOST
|
||||
*/
|
||||
#define OTG_HS_VBUS_PIN GPIO_Pin_13
|
||||
#define OTG_HS_VBUS_PORT GPIOB
|
||||
#define OTG_HS_VBUS_CLK RCC_AHB1Periph_GPIOB
|
||||
#define OTG_HS_VBUS_SOURCE GPIO_PinSource13
|
||||
|
||||
#define USB_HS_VBUSON_PIN GPIO_Pin_3
|
||||
#define USB_HS_VBUSON_PORT GPIOE
|
||||
#define USB_HS_VBUSON_CLK RCC_AHB1Periph_GPIOE
|
||||
#define USB_HS_VBUSON_SOURCE GPIO_PinSource3
|
||||
|
||||
#define USB_HS_FAULT_PIN GPIO_Pin_13
|
||||
#define USB_HS_FAULT_PORT GPIOD
|
||||
#define USB_HS_FAULT_CLK RCC_AHB1Periph_GPIOD
|
||||
#define USB_HS_FAULT_SOURCE GPIO_PinSource13
|
||||
|
||||
#define OTG_HS_ID_PIN GPIO_Pin_12
|
||||
#define OTG_HS_ID_PORT GPIOB
|
||||
#define OTG_HS_ID_CLK RCC_AHB1Periph_GPIOB
|
||||
#define OTG_HS_ID_SOURCE GPIO_PinSource12
|
||||
|
||||
/**
|
||||
* @TRIMER
|
||||
*/
|
||||
#define TRIMER_PIN GPIO_Pin_0
|
||||
#define TRIMER_PORT GPIOC
|
||||
#define TRIMER_CLK RCC_AHB1Periph_GPIOC
|
||||
#define TRIMER_SOURCE GPIO_PinSource0
|
||||
#define TRIMER_CHANNEL ADC_Channel_10
|
||||
|
||||
/** @addtogroup IAR_STM32F407ZG_SK_LOW_LEVEL_SD_FLASH
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @SD
|
||||
*/
|
||||
#define SD_CP_PIN GPIO_Pin_3
|
||||
#define SD_CP_PORT GPIOD
|
||||
#define SD_CP_CLK RCC_AHB1Periph_GPIOD
|
||||
#define SD_CP_SOURCE GPIO_PinSource3
|
||||
|
||||
#define SD_WP_PIN GPIO_Pin_4
|
||||
#define SD_WP_PORT GPIOE
|
||||
#define SD_WP_CLK RCC_AHB1Periph_GPIOE
|
||||
#define SD_WP_SOURCE GPIO_PinSource4
|
||||
|
||||
#define SD_CMD_PIN GPIO_Pin_2
|
||||
#define SD_CMD_PORT GPIOD
|
||||
#define SD_CMD_CLK RCC_AHB1Periph_GPIOD
|
||||
#define SD_CMD_SOURCE GPIO_PinSource2
|
||||
|
||||
#define SD_D0_PIN GPIO_Pin_8
|
||||
#define SD_D0_PORT GPIOC
|
||||
#define SD_D0_CLK RCC_AHB1Periph_GPIOC
|
||||
#define SD_D0_SOURCE GPIO_PinSource8
|
||||
|
||||
#define SD_D1_PIN GPIO_Pin_9
|
||||
#define SD_D1_PORT GPIOC
|
||||
#define SD_D1_CLK RCC_AHB1Periph_GPIOC
|
||||
#define SD_D1_SOURCE GPIO_PinSource9
|
||||
|
||||
#define SD_D2_PIN GPIO_Pin_10
|
||||
#define SD_D2_PORT GPIOC
|
||||
#define SD_D2_CLK RCC_AHB1Periph_GPIOC
|
||||
#define SD_D2_SOURCE GPIO_PinSource10
|
||||
|
||||
#define SD_D3_PIN GPIO_Pin_11
|
||||
#define SD_D3_PORT GPIOC
|
||||
#define SD_D3_CLK RCC_AHB1Periph_GPIOC
|
||||
#define SD_D3_SOURCE GPIO_PinSource11
|
||||
|
||||
#define SD_CLK_PIN GPIO_Pin_12
|
||||
#define SD_CLK_PORT GPIOC
|
||||
#define SD_CLK_CLK RCC_AHB1Periph_GPIOC
|
||||
#define SD_CLK_SOURCE GPIO_PinSource12
|
||||
/**
|
||||
* @brief SD FLASH SDIO Interface
|
||||
*/
|
||||
#define SD_SDIO_DMA_STREAM3 3
|
||||
//#define SD_SDIO_DMA_STREAM6 6
|
||||
|
||||
#ifdef SD_SDIO_DMA_STREAM3
|
||||
#define SD_SDIO_DMA_STREAM DMA2_Stream3
|
||||
#define SD_SDIO_DMA_CHANNEL DMA_Channel_4
|
||||
#define SD_SDIO_DMA_FLAG_FEIF DMA_FLAG_FEIF3
|
||||
#define SD_SDIO_DMA_FLAG_DMEIF DMA_FLAG_DMEIF3
|
||||
#define SD_SDIO_DMA_FLAG_TEIF DMA_FLAG_TEIF3
|
||||
#define SD_SDIO_DMA_FLAG_HTIF DMA_FLAG_HTIF3
|
||||
#define SD_SDIO_DMA_FLAG_TCIF DMA_FLAG_TCIF3
|
||||
#elif defined SD_SDIO_DMA_STREAM6
|
||||
#define SD_SDIO_DMA_STREAM DMA2_Stream6
|
||||
#define SD_SDIO_DMA_CHANNEL DMA_Channel_4
|
||||
#define SD_SDIO_DMA_FLAG_FEIF DMA_FLAG_FEIF6
|
||||
#define SD_SDIO_DMA_FLAG_DMEIF DMA_FLAG_DMEIF6
|
||||
#define SD_SDIO_DMA_FLAG_TEIF DMA_FLAG_TEIF6
|
||||
#define SD_SDIO_DMA_FLAG_HTIF DMA_FLAG_HTIF6
|
||||
#define SD_SDIO_DMA_FLAG_TCIF DMA_FLAG_TCIF6
|
||||
#endif /* SD_SDIO_DMA_STREAM3 */
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @CAN
|
||||
*/
|
||||
#define CAN_TX_PIN GPIO_Pin_9
|
||||
#define CAN_TX_PORT GPIOB
|
||||
#define CAN_TX_CLK RCC_AHB1Periph_GPIOB
|
||||
#define CAN_TX_AF GPIO_AF_CAN1
|
||||
#define CAN_TX_SOURCE GPIO_PinSource9
|
||||
|
||||
#define CAN_RX_PIN GPIO_Pin_8
|
||||
#define CAN_RX_PORT GPIOB
|
||||
#define CAN_RX_CLK RCC_AHB1Periph_GPIOB
|
||||
#define CAN_RX_AF GPIO_AF_CAN1
|
||||
#define CAN_RX_SOURCE GPIO_PinSource8
|
||||
|
||||
#define CAN_CTRL_PIN GPIO_Pin_6
|
||||
#define CAN_CTRL_PORT GPIOD
|
||||
#define CAN_CTRL_CLK RCC_AHB1Periph_GPIOD
|
||||
#define CAN_CTRL_SOURCE GPIO_PinSource6
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup IAR_STM32F407ZG_SK_LOW_LEVEL_Exported_Macros
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/** @defgroup IAR_STM32F407ZG_SK_LOW_LEVEL_Exported_Functions
|
||||
* @{
|
||||
*/
|
||||
void STM_EVAL_LEDInit(Led_TypeDef Led);
|
||||
void STM_EVAL_LEDOn(Led_TypeDef Led);
|
||||
void STM_EVAL_LEDOff(Led_TypeDef Led);
|
||||
void STM_EVAL_LEDToggle(Led_TypeDef Led);
|
||||
void STM_EVAL_PBInit(Button_TypeDef Button, ButtonMode_TypeDef Button_Mode);
|
||||
uint32_t STM_EVAL_PBGetState(Button_TypeDef Button);
|
||||
void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* USART_InitStruct);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __IAR_STM32F407ZG_SK_H */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/
|
Loading…
Add table
Add a link
Reference in a new issue