Hallo :-) Ich hab mir neulich ein STM32F4 Discovery board zugelegt: http://www.st.com/en/evaluation-tools/32f429idiscovery.html (Prozessor ist STM32F429ZI) Als Software nutze ich zum erzeugen des Init-codes STM32CubeMx und als IDE CooCox mit der ARM embedded toolchain. Ich hab in MX ein paar IO-Pinne als Output definiert. Diese möchte ich nun im Code ansprechen. Das Programm ist größtenteils automatisch von MX generiert. Ich habe nur 1-2 Zeilen hinzugefügt, um einen der IO-Pinne zu setzen. Kann das ganze auch problemlos kompilieren und flashen. Allerdings passiert nichts, ich messe weiterhin 0.0V an dem Pin. Weder togglen noch auf High setzen scheint zu funktionieren. Code siehe Anhang. Relevante Stelle (da der Rest automatisch erzeugt wurde):
1 | int main(void) |
2 | {
|
3 | /* USER CODE BEGIN 1 */
|
4 | |
5 | /* USER CODE END 1 */
|
6 | |
7 | /* MCU Configuration----------------------------------------------------------*/
|
8 | |
9 | /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
|
10 | HAL_Init(); |
11 | |
12 | /* USER CODE BEGIN Init */
|
13 | |
14 | /* USER CODE END Init */
|
15 | |
16 | /* Configure the system clock */
|
17 | SystemClock_Config(); |
18 | |
19 | /* USER CODE BEGIN SysInit */
|
20 | |
21 | /* USER CODE END SysInit */
|
22 | |
23 | /* Initialize all configured peripherals */
|
24 | MX_GPIO_Init(); |
25 | /* USER CODE BEGIN 2 */
|
26 | |
27 | /* USER CODE END 2 */
|
28 | |
29 | /* Infinite loop */
|
30 | /* USER CODE BEGIN WHILE */
|
31 | while (1) |
32 | {
|
33 | |
34 | /* USER CODE END WHILE */
|
35 | HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET); |
36 | //HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4);
|
37 | HAL_Delay(100); // 100ms |
38 | /* USER CODE BEGIN 3 */
|
39 | |
40 | }
|
41 | /* USER CODE END 3 */
|
42 | |
43 | }
|
Der Pin ist laut Schaltplan vom Board http://www.st.com/content/ccc/resource/technical/document/user_manual/6b/25/05/23/a9/45/4d/6a/DM00093903.pdf/files/DM00093903.pdf/jcr:content/translations/en.DM00093903.pdf direkt mit PB4 verbunden. Das High setzen von selbigem sollte also dazu führen dass ich eine Spannugn am Pin messen kann. Was muss ich tun um den IO Pin zu nutzen? Viele Grüße, Gotbread