Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 55
1

Не понимаю логику

17.07.2020, 21:55. Просмотров 228. Ответов 5

Вывожу значения приходящие с UART на tft по spi. Так вот непонятно почему если весь этот код стоит в бесконечном цикле while(1), он не обновляет значения на мониторе так как опрашивает UART_DMA только один раз, и для того чтоб непрерывно выводились значения мне необходимо вызывать отдельный цикл while(1) для UART_DMA. Даже если условие
C
1
if ((k == 0) && (t_b1 == 1))
всегда выполняется. По логике он же должен каждый раз заходить в
C
1
if ((k == 0) && (t_b1 == 1))
следом в
C
1
MP_menu();
и каждый раз делать запрос к UART_DMA без внутреннего беск. цикла. А работает только с внутреннем. Причем если условие
C
1
if ((k == 0) && (t_b1 == 1))
перестанет выполнятся то он выйдет из него, делаю вывод что он и не сидит в нем, так как он отреагировал на изменение. Или чего я не понимаю? Сам написал, и не понял че не работало, и не понял че заработало))

C
1
2
3
4
5
6
7
if ((k == 0) && (t_b1 == 1))
        {
            k=3;
            SET_curs();
            ClearMenu(TFT_WHITE);
            MP_menu();
        }
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void MP_menu(void)
{
    ....
    [U]while(1)[/U]
            {
                str[16]=0;
                HAL_UART_Receive_DMA(&huart1,(uint8_t*) str, 16);
                for(i=0;i<4;i++)
                {
                    tft1[i]=str[i];
                    tft2[i]=str[i+4];
                    tft3[i]=str[i+8];
                    tft4[i]=str[i+12];
                    //tft5[i]=str[i+20];
                }
                tft1[4]=0;
                tft2[4]=0;
                tft3[4]=0;
                tft4[4]=0;
                TFT_String(120,1+56,tft1);
                TFT_String(120,26+56,tft2);
                TFT_String(120,52+56,tft3);
                TFT_String(120,78+56,tft4);
            }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2020, 21:55
Ответы с готовыми решениями:

Не понимаю логику советских вождей
Почему они говорили, что &quot;У нас не заменимых нет&quot;? Это как? Все вредители что ли? Больше то ни кого...

Не понимаю логику работы программы
Здравствуйте уважаемые форумчане. У меня при просмотре кода ниже написанной программы возникли...

Абсолютно не понимаю логику своей программы
Всем добрый день!:) Пишу калькулятор, код представляет из себя просто наработки, но уже сейчас...

Логику программирования понимаю, а написать не могу.
Не могу написать под номером д) логику программирования понимаю а написать не могу. Правило...

5
Модератор
8195 / 6067 / 809
Регистрация: 14.02.2011
Сообщений: 21,034
17.07.2020, 22:37 2
Цитата Сообщение от Rustam98 Посмотреть сообщение
он не обновляет значения на мониторе так как опрашивает UART_DMA только один раз, и для того чтоб непрерывно выводились значения мне необходимо вызывать отдельный цикл while(1) для UART_DMA.
покажи как
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 55
17.07.2020, 23:16  [ТС] 3
Я все показал в функции void MP_menu(void) стоит while(1)
0
Модератор
8195 / 6067 / 809
Регистрация: 14.02.2011
Сообщений: 21,034
17.07.2020, 23:24 4
Rustam98, а второй где?
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 55
18.07.2020, 13:22  [ТС] 5
Цитата Сообщение от Rustam98 Посмотреть сообщение
почему если весь этот код стоит в бесконечном цикле while(1)
Он уже стоит в цикле, все что я написал уже стоит в цикле
0
Модератор
8195 / 6067 / 809
Регистрация: 14.02.2011
Сообщений: 21,034
18.07.2020, 13:34 6
Цитата Сообщение от Rustam98 Посмотреть сообщение
код стоит в бесконечном цикле while(1),
Цитата Сообщение от Rustam98 Посмотреть сообщение
отдельный цикл while(1) для UART_DMA.
где эти два разных цикла в приведенном коде?
а равно и условие
Цитата Сообщение от Rustam98 Посмотреть сообщение
if ((k == 0) && (t_b1 == 1))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2020, 13:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

хранить выборочные данные Checkbox, Не понимаю логику
Добрый день всем вот возник у меня такая проблема index.php &lt;form id=&quot;form1&quot; name=&quot;form1&quot;...

Не понимаю логику обработки кода, разбитого на файлы
Ситуация примерно такая. Есть файл file1.h, в котором объявлена функция: template&lt;class T&gt; T...

Определение количества слов и букв, введенных пользователем (не понимаю логику программы)
Помогите понять некоторые действия программы. Необходимо написать программу, подсчитывающую...

На логику ветвление!
Проверить истинность высказывания: &quot;Сумма цифр данного трехзначного числа является четным числом&quot;.

Задача на логику
(Ссылка на сторонний ресурс удалена)

Предложить логику
Здравствуйте, хочу написать программу, которая будет решать всякие многочлены(например: (a +...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.