stm32fxx arduino

admin 2023-8-2 448

第三步

本文在于记录一下使用方法,免于以后自己忘了。鉴于很多人对英文手册免疫,下面贴一下代码并加以中文注释,就是这么友好!哈哈

1、  管脚宏定义

#define LED_PIN PB5         //LED测试脚

#define Encode_A PD2        //编码器A相//霍尔传感器信号

#define Encode_B PD3        //编码器B相

#define PWM_PinA PB0        //PWM输出脚1

#define PWM_PinB PB1        //PWM输出脚2

2、 外部中断的使用

pinMode(Encode_A, INPUT);  //channel A

pinMode(Encode_B, INPUT);  //channel B  INPUT_PULLUP

attachInterrupt(Encode_A, Encode,RISING);//Encode_A有变化即进入中断函数 Encode

3、定时器的使用

Timer2.setMode(TIMER_CH1, TIMER_OUTPUTCOMPARE);//设置定时器2的通道1,为计时模式(还有PWM模式TIMER_PWM)

Timer2.setPeriod(Send_RATE); // in microseconds设置定时周期

Timer2.setCompare(TIMER_CH1, 1);      // overflow might be small,如果通道1计时大于1,则将其至于最大值

Timer2.attachInterrupt(TIMER_CH1, SendData);//定时中断,满足条件进入函数SendData

4、串口读写

哪一个串口就再 Serial后面加1,就是这么小白

Serial1.begin (115200);//串口1对应STM32 UART1 ,TX=PA9,RX=PA10 参数配置口

Serial2.begin (115200);//串口2对应STM32 UART2,TX=PA2,RX=PA3   RS485通信接口

Serial3.begin (115200);//串口3对应STM32 UART3,TX=PB10,RX=PB11 Can通信接口

5、模拟量读取

查找SMT32的模拟引脚,定义为Analog_Pin1

0-3.3伏对应0-4095。

/*读取电机电流和电压,模拟输入脚PC0,PC1*/

sensorValue1 = analogRead(Analog_Pin1);//电压0-3.3对应输出值为0-4095,换算成实际电流

全文完!

欢迎联系本站长QQ:3216572
最新回复 (0)
返回