Serial STM32

sanstan
Offline
Зарегистрирован: 24.06.2019

Добры

sanstan
Offline
Зарегистрирован: 24.06.2019

Добрый день. Подскажите, почему на ножках нет импульсов от UART . Использую Nucleo 401.

Подключаю 

   Serial2.begin(9600);
  Serial.begin(115200); 
void loop() {
  digitalWrite(PA5, HIGH);  
  delay(100);                       
  digitalWrite(PA5, LOW);    
  delay(50);                       
  n++;
  Serial2.println(String(n)+"----");
  Serial.println(String(n)+"--1--");
}

Отображение в мониторе идет. Причем отображался и Serial2 - пока не был инициализировал Serial .

 

sanstan
Offline
Зарегистрирован: 24.06.2019

Нашел: 

HardwareSerial Serial1(PA10, PA9);

 

PS. Протестировал время переключения ног:

loop(){

digitalWrite(PA5,HIGH);

digitalWrite(PA5,LOW);

}

Nucleo 030 :  386кГц

Nucleo 401: 1,6МГц

nik182
Offline
Зарегистрирован: 04.05.2015

А так?

loop(){
while(1){
digitalWrite(PA5,HIGH);
digitalWrite(PA5,LOW);}
}

Или так

void setup() {
  pinMode(PA5, OUTPUT); 
}
void loop() {
while(1){
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);  
}
}

 

sanstan
Offline
Зарегистрирован: 24.06.2019
//1,163МГц
void loop() {
  digitalWrite(PA5,HIGH);
  digitalWrite(PA5,LOW);  
}


//1,348МГц
void loop(){
  while(1){
    digitalWrite(PA5,HIGH);
    digitalWrite(PA5,LOW);
  }
}

//3,03 МГц
void loop(){
  while(1){
    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); 
  }
}

 

sanstan
Offline
Зарегистрирован: 24.06.2019
//3,396МГц
void loop(){
  while(1){
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5,GPIO_PIN_RESET); 
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5,GPIO_PIN_SET);     
  }
}

 

nik182
Offline
Зарегистрирован: 04.05.2015

Можно ещё проверить есть ли разница  между while и goto:

 LL:
 GPIOA->BRR = (uint32_t)GPIO_PIN_5;
 GPIOA->BSRR = (uint32_t)GPIO_PIN_5;
 goto LL;