STM32F401RCT6基于Arduino框架点灯程序

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F401RCT6基于Arduino框架点灯程序相关的知识,希望对你有一定的参考价值。

STM32F401RCT6基于Arduino框架点灯程序


  • ✨经测试,这次跑示例程序没有遇到像STM32F103VET6那样的串口乱码的bug,串口打印正常。

📓串口指定方式

  • 📋翻阅固件源码可以看到默认的串口是PA3,PA2:C:\\Users\\Administrator\\AppData\\Local\\Arduino15\\packages\\STMicroelectronics\\hardware\\stm32\\2.3.0\\variants\\STM32F4xx\\F401R(B-C-D-E)T\\variant_generic.h
// Default pin used for generic 'Serial' instance
// Mandatory for Firmata
#ifndef PIN_SERIAL_RX
  #define PIN_SERIAL_RX         PA3
#endif
#ifndef PIN_SERIAL_TX
  #define PIN_SERIAL_TX         PA2
#endif
  • 🔰串口自定义指定引脚方法:
  1. 函数指定
     Serial.setRx(PA10); // using pin name PY_n
    Serial.setTx(PA9); // using pin number PYn
  1. 实例化串口对象: Serialx(x:1-4)
HardwareSerial Serialx(PA10, PA9);//将Serialx(x=1-4)串口x的管脚指定到PA10,PA9引脚上

📑IO口输出方式

🔖相比AVR单片机多了速度匹配。

digitalToggleFast(PC_2);//状态翻转
digitalWriteFast(PB_5, !digitalReadFast(PB_5)) ;//状态翻转
  • 🔰普通写IO状态
digitalToggle(PB7);
digitalWrite(PB7, !digitalRead(PB7)) ;

⚡注意以上两种书写时,其中的形参是有差异的。

📝点灯+ 串口打印程序

#define led1  PB7
#define led2  PB8


//HardwareSerial Serialx(PA10, PA9);//将Serialx(x=1-4)串口x的管脚指定到PA10,PA9引脚上
// the setup function runs once when you press reset or power the board
void setup() 
  // initialize digital pin LED_BUILTIN as an output.
      Serial.setRx(PA10); // using pin name PY_n
    Serial.setTx(PA9); // using pin number PYn
  Serial.begin(115200);
      pinMode(led1, OUTPUT);
     pinMode(led2, OUTPUT);


// the loop function runs over and over again forever
void loop() 
    digitalToggle(led1);
  digitalToggle(led2);
  delay(1000);                       // wait for a second
 Serial.println("Arduino STM32F401RCT6 \\n");

  • 串口打印

以上是关于STM32F401RCT6基于Arduino框架点灯程序的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103VET6基于Arduino开发框架下串口和软串口通讯示例

STM32F103VET6基于Arduino开发框架下FreeRTOS串口1不能正常工作解决方案

STM32F103VET6基于Arduino开发框架下串口和软串口输出乱码解决方案

STM32F103C8T6基于Arduino框架下利用定时器跑RBG灯闪烁

stm32F103RCT6概括

STM32F401 外部中断误触发问题