астер
Пн 26 июня 2017 г. 9:55 вечера
привет,
Я переношу библиотеку в STM, которая использует модуль Bluetooth для общения с приложением Android
Мне нужно назначить порт переменной, что -то вроде:
int a = pb1;
Мне было интересно, какой тип я должен использовать правильный тип?
Кстати, я проверил Int, и это работает, но это привело меня к другому вопросу:
Используя это на Maple Mini и на черной таблетках, я получаю различные значения от печати, почему?
Я переношу библиотеку в STM, которая использует модуль Bluetooth для общения с приложением Android
Мне нужно назначить порт переменной, что -то вроде:
int a = pb1;
Мне было интересно, какой тип я должен использовать правильный тип?
Кстати, я проверил Int, и это работает, но это привело меня к другому вопросу:
Используя это на Maple Mini и на черной таблетках, я получаю различные значения от печати, почему?
while (spi_is_tx_empty(dev)
Rogerclark
Пн 26 июня 2017 г. 22:08
Если вы хотите прочитать весь порт (16 бит), на данный момент вам нужно будет использовать встроенный ссылку на структуру порта (устройство) и его входной регулятор.
Я уверен, что другие люди опубликовали несколько фрагментов кода. Попробуйте Googling для быстрого доступа GPIO или доступа к порту
Я уверен, что другие люди опубликовали несколько фрагментов кода. Попробуйте Googling для быстрого доступа GPIO или доступа к порту
астер
Пн 26 июня 2017 г. 22:29
[Rogerclark - Пн 26 июня 2017 г. 22:08] - Если вы хотите прочитать весь порт (16 бит)Я не должен читать весь порт. Я просто хотел бы знать, какую переменную я должен использовать, чтобы назначить пин -код переменной.
И тогда почему на другой плате (практически с тем же MCU) соответствующее значение int для PAX отличается
Rogerclark
Вт 27 июня 2017 г. 1:20 утра
Булавки - это просто указатель в массив PIN_MAP
Я думаю, что вы могли бы использовать один байт, но, поскольку MCU - это изначально 32 бита, как правило, лучше всего использовать Int для целых чисел, если вам не нужно сделать какое -то конкретное смещение битов или маскирование, которое требует 8 -битного значения
Так... использовать
инт
Я думаю, что вы могли бы использовать один байт, но, поскольку MCU - это изначально 32 бита, как правило, лучше всего использовать Int для целых чисел, если вам не нужно сделать какое -то конкретное смещение битов или маскирование, которое требует 8 -битного значения
Так... использовать
инт
Стивестронг
Вт 27 июня 2017 г. 12:30
Различные портовые булавки являются частью перечисления, как это:
https: // github.com/rogerclarkmelbourne/ ... орд.H#176
Ну, на самом деле они должны быть идентичны, но я не знаю логики, почему булавки не принимаются в одном и том же порядке для каждого варианта...
https: // github.com/rogerclarkmelbourne/ ... орд.H#176
Ну, на самом деле они должны быть идентичны, но я не знаю логики, почему булавки не принимаются в одном и том же порядке для каждого варианта...
Rogerclark
Вт 27 июня 2017 12:49
[Стивестронг - Вт 27 июня 2017 г. 12:30]] - Различные портовые булавки являются частью перечисления, как это:Причина, по которой карты PIN не находятся в одном и том же порядке, заключается в том, что все они получены из кленовых плат, и эти платы имеют странные отображения PIN, так как их выводы пронумерованы, а не используют букву порта и номер, E.G PB5.
https: // github.com/rogerclarkmelbourne/ ... орд.H#176
Ну, на самом деле они должны быть идентичны, но я не знаю логики, почему булавки не принимаются в одном и том же порядке для каждого варианта...
Первоначально общее картирование F103C было таким же, как и Maple Mini, но я подумал. Хотя я, возможно, не очищал все доски, а некоторые другие платы могут использовать номера пин.
астер
Вт 27 июня 2017 г. 13:06
[Rogerclark - Вт 27 июня 2017 г. 12:49 -Отлично сейчас это имеет смысл, у меня была такая же мысль, что и Стевестронг: «На самом деле они должны быть идентичными»
Причина, по которой карты PIN не находятся в одном и том же порядке, заключается в том, что все они получены из кленовых плат, и эти платы имеют странные отображения PIN, так как их выводы пронумерованы, а не используют букву порта и номер, E.G PB5.
Первоначально общее картирование F103C было таким же, как и Maple Mini, но я подумал. Хотя я, возможно, не очищал все доски, а некоторые другие платы могут использовать номера пин.
Дэнниф
Вт 27 июня 2017 г. 13:12
Если исходный код сделан правильно, он должен определить тип прихоти для выводов.
Если нет, вы можете увидеть это дискретно определено .
Это не хорошая практика для кодирования их через переменную. Вместо этого я использую макросы. Если вам нужно использовать переменную, используйте без знака, но должен работать.
Если нет, вы можете увидеть это дискретно определено .
Это не хорошая практика для кодирования их через переменную. Вместо этого я использую макросы. Если вам нужно использовать переменную, используйте без знака, но должен работать.
Стивестронг
Вт 27 июня 2017 г. 13:48
[Дэнниф - Вторник 27 июня 2017 г. 13:12] - Это не хорошая практика для кодирования их через переменную. Вместо этого я использую макросы.К сожалению, большинство оригинальных эскизов Arduino используют версию «int» (переменная).
Я, я также предпочитаю макросы, так что, когда я переносит эскиз для STM32, первое, что я делаю, это заменить «int» на макрос.
Rogerclark
Вт 27 июня 2017 г. 9:37 вечера
Афик
const int, тоже будет в порядке,
const int, тоже будет в порядке,
Zoomx
Ср 28 июня 2017 г., 6:29
На форуме Arduino есть пост о различиях между использованием const int vs #define.
Комбинированная препроцессор/компиляр не делает различий, он будет использоваться в одном и том же пространстве памяти.
В любом случае кажется, что const int лучше, потому что, если вы совершаете ошибки, возникнут ошибки
например, это
Комбинированная препроцессор/компиляр не делает различий, он будет использоваться в одном и том же пространстве памяти.
В любом случае кажется, что const int лучше, потому что, если вы совершаете ошибки, возникнут ошибки
например, это
while (spi_is_tx_empty(dev)
астер
Пт, 07 июля 2017 г., 7:48
Интересно спасибо Zoomx! Я всегда использую макросы, но теперь я буду использовать константу в той же ситуации
ZMEMW16
Пт, 07 июля 2017 г., 11:00 утра
void setup() {
// Set up the built-in LED pin as an output:
pinMode(PB13, OUTPUT);
pinMode(PA5, OUTPUT);
}
void loop() {
digitalWrite(PA5,!digitalRead(PA5));// Turn the LED from off to on, or on to off
digitalWrite(PB13,!digitalRead(PB13));// Turn the LED from off to on, or on to off
delay(1000); // Wait for 1 second (1000 milliseconds)
}
астер
Пт, 07 июля 2017 12:06
Это был пример возможной ошибки
ZMEMW16
Пт, 07 июля 2017 12:35
Я рад, что тогда это понял
О, это щекотало
Стивен
О, это щекотало
Стивен
астер
Ср. 12 июля 2017 г. 14:08
Мне было интересно, можно ли сделать наоборот: преобразовать вывод (например, встроенный Maple Mini Inder = 33) в порт (i.эн. PB1)
Я посмотрел на ядро Роджера, но я не нашел способ сделать это, это единственная информация, которую я мог бы найти похожей на то, что я ищу
Я посмотрел на ядро Роджера, но я не нашел способ сделать это, это единственная информация, которую я мог бы найти похожей на то, что я ищу
#define ledpin 13
boolean flip=0;
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
pinMode(ledpin,OUTPUT);
}
void loop() {
flip=!flip;
digitalWrite(ledpin,flip);
Serial.println("Serial0");
delay(100);
Serial1.println("Serial1");
delay(100);
Serial2.println("Serial2");
delay(100); // delay in between reads for stability
}
астер
Чт 13 июля 2017 г., 21:04
Мне не удалось извлечь из структуры порт, но это лучше, чем нет:
#define ledpin 13
boolean flip=0;
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
Serial1.begin(9600);
Serial2.begin(9600);
pinMode(ledpin,OUTPUT);
}
void loop() {
flip=!flip;
digitalWrite(ledpin,flip);
Serial.println("Serial0");
delay(100);
Serial1.println("Serial1");
delay(100);
Serial2.println("Serial2");
delay(100); // delay in between reads for stability
}