Hallo Leute...
Ich bin gerade dabei mich in die STM32 Familie einzuarbeiten. Dazu
benutze ich das STM32 Value Line Sicovery von ST. Dazu die CoIDE und die
ARM Toolchain. Blöderweise komme ich bei einer simplen Pin-Abfrage nicht
mehr weiter.
hier mein code:
1 | #include "stm32f10x_conf.h"
|
2 |
|
3 | int main(void)
|
4 | {
|
5 | GPIO_InitTypeDef GPIO_InitStructure;
|
6 |
|
7 | SystemInit();
|
8 |
|
9 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
|
10 |
|
11 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
12 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_8;
|
13 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
14 | GPIO_Init(GPIOC, &GPIO_InitStructure);
|
15 |
|
16 |
|
17 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
|
18 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
|
19 | GPIO_Init(GPIOC, &GPIO_InitStructure);
|
20 |
|
21 | GPIO_WriteBit(GPIOC, GPIO_Pin_9, Bit_SET);
|
22 | uint8_t in=0;
|
23 | while(1)
|
24 | {
|
25 | in = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_14);
|
26 | if(in==1) {
|
27 | GPIO_WriteBit(GPIOC, GPIO_Pin_8, Bit_SET);
|
28 | }else{
|
29 | GPIO_WriteBit(GPIOC, GPIO_Pin_8, Bit_RESET);
|
30 | }
|
31 | }
|
32 | }
|
Verwunderlich ist hierbei, dass PINC0 bis PINC13 problemlos auf diese
Weise abgefragt werden kann. Auf die meißten anderen PINs auf diesem
Eval-Board reagiert die if-Abfrage nicht. Selbst der Userbutton (PA0)
wird ignoriert.
Habt ihr eine Idee dazu?
MfG Konrad