2013-01-28 06:24 AM
Hi,
I am working with a STM32L1 chip (STM32L152RB to be exact, 64 Pin) and I would like start with the basics and then work up as I do not have any experience with it. I do not have the STM32L1 Dev/Eval board, I am working with our own board.After looking at some of the example projects on IAR EWB I am getting to grips with some configurations, but I would just like to know how to set up 4 GPIO pins;2 push-pull output pins configured to pins PB7 and PB8,2 pull-up input pins configured to pins PB13 and PB14.Any information for a beginner would be great, at this point just setting a pin of my choice high or low is progress.The board and chip work fine so far and I can download and debug any example project without any problems.2013-01-28 06:58 AM
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* GPIOB Periph clock enable */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
/* Configure PB7 and PB8 in output pushpull mode */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_40MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB, GPIO_Pin_7); // PB7 High
GPIO_ResetBits(GPIOB, GPIO_Pin_8); // PB8 Low
/* Configure PB13 and PB14 in input mode */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
2013-01-28 08:47 AM
Thanks, seems like I was overlooking the A,B,Cs etc on the end of GPIO enables and it was really confusing me, so simple now.
Thanks again.