реклама на сайте
подробности

 
 
> отладка в Keil
mihlit
сообщение Aug 18 2018, 10:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 7-04-18
Пользователь №: 103 011



Код
GPIOD->BSRR |= GPIO_BSRR_BS2;            //Request -> 1
    Delay(1);
    GPIOD->BSRR |= GPIO_BSRR_BR2;            //Request -> 0
    
    while(!(GPIOD->IDR & GPIO_IDR_IDR3)) {}    //ждать Ready
    
        for(i=0; i<16; i++)
        {
            GPIOD->BSRR |= GPIO_BSRR_BS6;            //Read -> 1
            buf[i] = GPIO_ReadInputData(GPIOC);
            GPIOD->BSRR |= GPIO_BSRR_BR6;            //Read -> 0
        }
        
    while(1)
    {
        
    }

Когда программа запускается по сбросу, лог. анализатор показывает обмен сигналами между МК и внешним устройством.
Если я запускаю программу в отладчике, на строчке

while(!(GPIOD->IDR & GPIO_IDR_IDR3)) {} //ждать Ready
отладчик зависает. Объясните начинающему (стаж 4,5 мес), почему так происходит?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mihlit
сообщение Sep 1 2018, 10:07
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 7-04-18
Пользователь №: 103 011



Чтобы не плодить тем, спрошу здесь, кто-нибудь подскажите:
Есть в GPIO регистр GPIOx_AFRH.
Как в нем установить AFRH15[3:0] =5?
Записать магическое число 0х50000000 или есть какой-то дефайн? Смотрел stm32f4xx.h, stm32f4_gpio.h - не нашел. Ткните-пните в нужном направлениию
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Sep 1 2018, 12:08
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Цитата(mihlit @ Sep 1 2018, 14:07) *
Чтобы не плодить тем, спрошу здесь, кто-нибудь подскажите:
Есть в GPIO регистр GPIOx_AFRH.
Как в нем установить AFRH15[3:0] =5?
Записать магическое число 0х50000000 или есть какой-то дефайн? Смотрел stm32f4xx.h, stm32f4_gpio.h - не нашел. Ткните-пните в нужном направлениию

В stm32f4xx_gpio.h есть
Код
#define GPIO_AF_SPI1          ((uint8_t)0x05)  /* SPI1 Alternate Function mapping      */
#define GPIO_AF_SPI2          ((uint8_t)0x05)  /* SPI2/I2S2 Alternate Function mapping */
#define GPIO_AF_SPI4          ((uint8_t)0x05)  /* SPI4 Alternate Function mapping      */
#define GPIO_AF_SPI5          ((uint8_t)0x05)  /* SPI5 Alternate Function mapping      */
#define GPIO_AF_SPI6          ((uint8_t)0x05)  /* SPI6 Alternate Function mapping      */

А в В stm32f4xx_gpio.c есть
Код
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
{
  uint32_t temp = 0x00;
  uint32_t temp_2 = 0x00;
  
  /* Check the parameters */
  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
  assert_param(IS_GPIO_AF(GPIO_AF));
  
  temp = ((uint32_t)(GPIO_AF) << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4));
  GPIOx->AFR[GPIO_PinSource >> 0x03] &= ~((uint32_t)0xF << ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4));
  temp_2 = GPIOx->AFR[GPIO_PinSource >> 0x03] | temp;
  GPIOx->AFR[GPIO_PinSource >> 0x03] = temp_2;
}

По сути делает то, что Вам нужно.

Если не используете SPL, то что мешает вовсе использовать самописные #define?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mihlit   отладка в Keil   Aug 18 2018, 10:22
- - Obam   IDR, который для GPIOD, часом не мониторится в око...   Aug 18 2018, 14:19
|- - Arlleex   Цитата(Obam @ Aug 18 2018, 17:19) IDR, ко...   Aug 18 2018, 16:13
- - x893   В IDR при чтении нисего не сбрасывается. Для GPIOD...   Aug 18 2018, 16:14
- - mihlit   "Поэтому с большой долей вероятности обмен Ва...   Aug 19 2018, 01:48
|- - Arlleex   Цитата(mihlit @ Aug 19 2018, 04:48) Дейст...   Aug 19 2018, 07:25
- - mihlit   ЦитатаМожете. Для этого Вам необходимо пересмотрет...   Aug 19 2018, 10:06
|- - Arlleex   Цитата(mihlit @ Aug 19 2018, 13:06) Я при...   Aug 19 2018, 10:50
- - mihlit   Дважды смотрел вкладку, но искал установленные пти...   Aug 19 2018, 11:22
- - mihlit   Смотрел я GPIO_PinAFConfig, но по своей неопытност...   Sep 1 2018, 12:20
|- - Arlleex   Цитата(mihlit @ Sep 1 2018, 15:20) Смотре...   Sep 1 2018, 13:38
- - mihlit   КодGPIOA->AFRH = 0x50000000; Ассистент после -...   Sep 1 2018, 15:19
- - Professor Chaos   Цитата(mihlit @ Sep 1 2018, 13:07) Записа...   Sep 1 2018, 18:04
|- - Сергей Борщ   QUOTE (Professor Chaos @ Sep 1 2018, 21:0...   Sep 1 2018, 18:34
- - mihlit   Объяснюсь по поводу своего вопроса. 1. На простора...   Sep 2 2018, 02:30
- - mihlit   Задам еще вопрос по Keil. У меня версия 5.23 (32Кб...   Sep 2 2018, 05:05
- - Professor Chaos   Цитата(Сергей Борщ @ Sep 1 2018, 21:34) Ч...   Sep 2 2018, 05:06
|- - Сергей Борщ   QUOTE (Professor Chaos @ Sep 2 2018, 08:0...   Sep 2 2018, 06:07
- - x893   Это очень просто https://www.google.ru/search?q=за...   Sep 2 2018, 05:17
- - Professor Chaos   Цитата(mihlit @ Sep 2 2018, 05:30) 1. На ...   Sep 2 2018, 05:51
- - mihlit   ЦитатаРаботая с регистрами вам надо знать не тольк...   Sep 2 2018, 06:02
- - Arlleex   Цитата(Сергей Борщ @ Sep 1 2018, 21:34) К...   Sep 2 2018, 08:02
- - Professor Chaos   Цитата(Сергей Борщ @ Sep 2 2018, 09:07) Н...   Sep 2 2018, 08:17
- - mihlit   ЦитатаНужно больше информации. Скрин экрана, напри...   Sep 2 2018, 08:25
|- - Arlleex   Цитата(mihlit @ Sep 2 2018, 11:25) Дык в ...   Sep 2 2018, 08:54
- - mihlit   ЦитатаInclude paths прописаны в закладке C/C++ про...   Sep 2 2018, 09:06
- - Professor Chaos   С макросом оказалось всё немного сложнее. При введ...   Sep 2 2018, 12:48
|- - jcxz   Цитата(Professor Chaos @ Sep 2 2018, 15:4...   Sep 2 2018, 14:20
- - Professor Chaos   Цитата(jcxz @ Sep 2 2018, 17:20) Пользуйт...   Sep 2 2018, 16:01
- - mihlit   Задал вопрос в отдельной ветке - молчок. Буду спра...   Sep 8 2018, 04:21
- - mihlit   Извиняйте за компанию   Sep 8 2018, 07:21


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 11:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01347 секунд с 7
ELECTRONIX ©2004-2016