2017-09-10 09:17 PM
Hi.
Now I'm trying to understand the alternate function mapping with simple example of 'STM32F4xx_StdPeriph_Examples\USART\USART_HyperTerminal'
But there is nowhere the setting of alternate function mapping to use PA9 as USART1_TX (AF7)
I think it should be in there about the setting of alternate function mapping
Could you please let me know how can I understand this?
Even I can find the same function USART1_TX and USART1_TX PA9 PA10 and PB6 and PB7.
So If I want to use PB6 to USART1_TX not PA9 then what am I supposed to ?
Could you please with any example snippet code?
2017-09-11 02:33 AM
Hi
,I recommend you to have a look to thePinouts and pin description (Alternate function mapping table) section in your related datasheet , and alsoGeneral-purpose I/Os (GPIO) chapter in your reference manual.
Even I can find the same function USART1_TX and USART1_TX PA9 PA10 and PB6 and PB7.
So If I want to use PB6 to USART1_TX not PA9 then what am I supposed to ?
Could you please with any example snippet cod
in the main.c file the STM_EVAL_COMInit function Configures the COM port
in thestm324x9i_eval.h for example you find the definitions of theCOM port
you can use thiefunction below to Change the mapping of the specified pin
/* GPIO Alternate functions configuration function ****************************/void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF);�?�?
example TIM1:
GPIO_InitTypeDef GPIO_InitStructure;/* GPIOA, GPIOB and GPIOC clocks enable */RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC, ENABLE);/* TIM1 clock enable */RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);/* GPIOA Configuration: TIM1 Channel1 as alternate function push-pull */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;GPIO_Init(GPIOA, &GPIO_InitStructure);/* Connect TIM pins to AF1 */GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_TIM1);�?�?�?�?�?�?�?�?�?�?�?�?�?�?
-Nesrine-
2017-09-11 03:49 AM
/**
* @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);}