ogarnąłem temat na podstawie przykładu z coocox. Alagner, program nie ma zdefiniowanego BS7 i wywala błąd i masz rację, popełniłem błąd w opisie, są na porcie B. Będę się trzymał opcji przykładowej coocox'a. mam pytanie co do podłączania do płytki zewnętrznych elementów np (znów)diody, mam podpiętego led'a do PA3 i GND.
#include "stm32l1xx.h"
#include "stm32l1xx_rcc.h"
#include "stm32l1xx_gpio.h"
#define LD_GREEN_GPIO_PIN GPIO_Pin_7
#define LD_BLUE_GPIO_PIN GPIO_Pin_6
#define LD_jakas GPIO_Pin_3
void Delay(__IO uint32_t nCount);
int main(void) {
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = LD_GREEN_GPIO_PIN | LD_BLUE_GPIO_PIN | LD_jakas;
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_Init(GPIOA, &GPIO_InitStructure);
while (1) {
GPIO_SetBits(GPIOB, LD_GREEN_GPIO_PIN | LD_BLUE_GPIO_PIN);
Delay(50000);
GPIO_ResetBits(GPIOB, LD_GREEN_GPIO_PIN | LD_BLUE_GPIO_PIN);
Delay(50000);
GPIO_SetBits(GPIOA, LD_jakas);
}
}
void Delay(__IO uint32_t nCount) {
while (nCount--) {
}
}
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
while (1)
{
}
}
#endif
led nie świeci. sądzę że dobrze zrozumiałem kod przykładowy.