Несколько дней назад начал изучать STM32C8T6 размещенного на Pinboard 2. В изучении использую кокосовую братию и столкнулся со следующей проблемой. Есть код:
Код
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
void GPIO_Blink(void);
int main(void){
GPIO_Blink();
return 0;
}
void GPIO_Blink(void){
int i;
/* Initialize Leds mounted on STM32 board */
GPIO_InitTypeDef GPIO_InitStructure;
/* Initialize LED which connected to PC6,9, Enable the Clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* Configure the GPIO_LED pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
while (1) {
/* Toggle LEDs which connected to PC6*/
GPIOB->ODR ^= GPIO_Pin_3;
for(i = 0; i < 990000; i++);
GPIOB->ODR ^= GPIO_Pin_4;
for(i = 0; i < 990000; i++);
GPIOB->ODR ^= GPIO_Pin_5;
for(i = 0; i < 990000; i++);
}
}
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
void GPIO_Blink(void);
int main(void){
GPIO_Blink();
return 0;
}
void GPIO_Blink(void){
int i;
/* Initialize Leds mounted on STM32 board */
GPIO_InitTypeDef GPIO_InitStructure;
/* Initialize LED which connected to PC6,9, Enable the Clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* Configure the GPIO_LED pin */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
while (1) {
/* Toggle LEDs which connected to PC6*/
GPIOB->ODR ^= GPIO_Pin_3;
for(i = 0; i < 990000; i++);
GPIOB->ODR ^= GPIO_Pin_4;
for(i = 0; i < 990000; i++);
GPIOB->ODR ^= GPIO_Pin_5;
for(i = 0; i < 990000; i++);
}
}
Проблема в том, что на вроде посылаю 0 (1) на три порта, однако, 5й мигает как надо, 4й постоянно горит, а 3й молчит.
Кто может подсказать, в чем ошибка?