Пт май 13, 2016 12:59:13
int main(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER = 0x55555555;
GPIOB->OTYPER = 0;
//GPIOA->PUPDR = 0x55555555;
GPIOB->ODR = 0x0000FFFF;
return 0;
}
Пт май 13, 2016 13:09:52
Пт май 13, 2016 14:57:12
int main(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
GPIOB->MODER = 0x55555555;
GPIOB->OTYPER = 0;
GPIOB->ODR = 0x0000FFFF;
while(1){}
return 0;
}
Пт май 13, 2016 15:12:53
Пт май 13, 2016 15:23:44
+КРАМ писал(а):Включите отладчик и остановите исполнение в бесконечном цикле.
Пт май 13, 2016 15:50:01
Error: Flash driver function execute error
Program Download Failed !
Пт май 13, 2016 16:09:40
Пт май 13, 2016 17:39:47
Flash driver function execute error
Reading symbols from D:/\310\353\374\377/CooCox/HW2/HW2/Debug/bin/HW2.elf...(no debugging symbols found)...done.
file "D:/\310\353\374\377/CooCox/HW2/HW2/Debug/bin/HW2.elf"
Reading symbols from D:/\310\353\374\377/CooCox/HW2/HW2/Debug/bin/HW2.elf...(no debugging symbols found)...done.
set tdesc filename C:/Program Files (x86)/CoIDE_V2Beta/bin/target_desc/arm-with-m.xml
target remote 127.0.0.1:2009
Remote debugging using 127.0.0.1:2009
0xb5103302 in ?? ()
tbreak main
Function "main" not defined.
Continuing.
continue
Пт май 13, 2016 22:42:04
Сб май 14, 2016 07:34:12
Мурик писал(а): Это куда нагляднее и понятнее чем прямая запись в регистры.
Сб май 14, 2016 18:08:27
Сб май 14, 2016 18:44:25
Сб май 14, 2016 21:52:07
Program Size: Code=1268 RO-data=212 RW-data=20 ZI-data=1636
Вс май 15, 2016 02:17:54
Вс май 15, 2016 08:06:39
КРАМ писал(а):Тем более, что все это делается через шаблоны структур...
Вс май 15, 2016 21:03:03
Т. е. код из этого сообщения понятный без просмотра даташита?dosikus писал(а):Мурик писал(а): Это куда нагляднее и понятнее чем прямая запись в регистры.
Бредим?
GPIOB->MODER = 0x55555555;
GPIOB->OTYPER = 0;
GPIOB->ODR = 0x0000FFFF;
Вс май 15, 2016 21:45:51
КРАМ писал(а):Не забывайте, что это 32 разрядная машина и обычный NOP занимает 4 байта.
Пн май 16, 2016 07:06:15
Мурик писал(а):Т. е. код из этого сообщения понятный без просмотра даташита?Представьте что в таком же виде настраивается вся периферия...
- Код:
GPIOB->MODER = 0x55555555;
GPIOB->OTYPER = 0;
GPIOB->ODR = 0x0000FFFF;
// разрешение тактирования портов A, B, C, D
RCC->AHB1ENR = RCC_AHB1Periph_GPIOA * 1 // GPIOA clock
| RCC_AHB1Periph_GPIOB * 1 // GPIOB clock
| RCC_AHB1Periph_GPIOC * 1 // GPIOC clock
| RCC_AHB1Periph_GPIOD * 1 // GPIOD clock
| RCC_AHB1Periph_GPIOE * 0 // GPIOE clock
| RCC_AHB1Periph_GPIOF * 0 // GPIOF clock
| RCC_AHB1Periph_GPIOG * 0 // GPIOG clock
| RCC_AHB1Periph_GPIOG * 0 // GPIOG clock
| RCC_AHB1Periph_GPIOI * 0 // GPIOI clock
| RCC_AHB1Periph_GPIOJ * 0 // GPIOJ clock (STM32F42xxx/43xxx devices)
| RCC_AHB1Periph_GPIOK * 0; // GPIOK clock (STM32F42xxx/43xxx devices)
// ---------- Порт А
// PA0 - UART4_TX (AF8) - UART_EXT_TX
// PA1 - UART4_RX (AF8) - UART_EXT_RX
// PA2 - USART2_TX (AF7) - MIDI TX
// PA3 - USART2_RX (AF7) - MIDI TX
// PA4 - I2S1_WS (AF5) - выход 48кГц = Fs
// PA5 - I2S1_CK (AF5) - выход 64Fs
// PA6 - I2S2_MCK (AF6) - выход 256Fs
// PA7 - I2S1_SD (AF5) - вход данных
// PA8 - GPIO OUT - I2S1_ON - 0-выкл 1-вкл АЦП
// PA9 - OTG_FS_VBUS (???)
// PA10 - OTG_FS_ID (AF10)
// PA11 - OTG_FS_DM (AF10)
// PA12 - OTG_FS_DP (AF10)
// PA13 - SWDIO (AF0)
// PA14 - SWCLK (AF0)
// PA15 - GPIO BIDIR - SPI ESP NSS
GPIOA->MODER = GPIO_MODER_MODER0_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER1_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER2_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER3_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER4_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER5_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER6_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER7_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER8_0 // 01 - выход
| GPIO_MODER_MODER10_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER11_1 // 10 - альтернативная ф-я
| GPIO_MODER_MODER13_1 // 10 - SWDIO
| GPIO_MODER_MODER14_1 // 10 - SWCLK
| GPIO_MODER_MODER15_0; // 01 - выход
Вт май 17, 2016 10:11:04
Так уже лучше.GARMIN писал(а):А если так
Ср май 18, 2016 00:49:42
GARMIN писал(а):А если так, код из реального проекта STM32F449:
- Код:
// разрешение тактирования портов A, B, C, D
RCC->AHB1ENR = RCC_AHB1Periph_GPIOA * 1 // GPIOA clock
| RCC_AHB1Periph_GPIOB * 1 // GPIOB clock
| RCC_AHB1Periph_GPIOC * 1 // GPIOC clock
| RCC_AHB1Periph_GPIOD * 1 // GPIOD clock
| RCC_AHB1Periph_GPIOE * 0 // GPIOE clock
| RCC_AHB1Periph_GPIOF * 0 // GPIOF clock
| RCC_AHB1Periph_GPIOG * 0 // GPIOG clock
| RCC_AHB1Periph_GPIOG * 0 // GPIOG clock
| RCC_AHB1Periph_GPIOI * 0 // GPIOI clock
| RCC_AHB1Periph_GPIOJ * 0 // GPIOJ clock (STM32F42xxx/43xxx devices)
| RCC_AHB1Periph_GPIOK * 0; // GPIOK clock (STM32F42xxx/43xxx devices)
RCC->AHBENR |= (
1 * RCC_AHBENR_GPIOAEN | // GPIOA clock enable
1 * RCC_AHBENR_GPIOBEN | // GPIOB clock enable
0 * RCC_AHBENR_GPIOCEN | // GPIOC clock disable
0 * RCC_AHBENR_GPIODEN | // GPIOD clock disable
1 * RCC_AHBENR_GPIOFEN // GPIOF clock enable
);
nrf_write_register(CONFIG, // Transmitter power-up
0 * NRF24_CONFIG_PRIM_RX | // select TX mode
1 * NRF24_CONFIG_PWR_UP | // turn power on
1 * NRF24_CONFIG_EN_CRC | // enable CRC
0 * NRF24_CONFIG_CRCO | // use 8-bit CRC
1 * NRF24_CONFIG_MAX_RT | // disable MAX_RT flag
0 * NRF24_CONFIG_TX_DS | // enable "TX Data Sent" flag
1 * NRF24_CONFIG_RX_DR // disable "RX Data Ready" flag
);