forked from logzhan/RobotHardware-UESTC
54 lines
2.1 KiB
C
54 lines
2.1 KiB
C
/******************** (C) COPYRIGHT 2023 GeekRebot *****************************
|
|
* File Name : bsp_sys.c
|
|
* Current Version : V1.0 & ST 3.5.0
|
|
* Author : zhanli 719901725@qq.com
|
|
* Date of Issued : 2023.04.06 zhanli: Create
|
|
* Comments : 初始化所有外设
|
|
********************************************************************************/
|
|
#include "bsp_sys.h"
|
|
|
|
/**----------------------------------------------------------------------
|
|
* Function : System_Init
|
|
* Description : GeekRebot外设初始化
|
|
* Author : zhanli&719901725@qq.com
|
|
* Date : 2023/04/22 zhanli
|
|
*---------------------------------------------------------------------**/
|
|
void System_Init(void)
|
|
{
|
|
Delay_Init(72); // 滴答时钟初始化
|
|
NVIC_Config(); // 中断配置配置初始化
|
|
LED_GPIO_Config(); // LED初始化
|
|
USART1_Init(115200); // 串口初始化
|
|
IIC_Init(); // IIC模拟初始化
|
|
MOTO_GPIO_Init(); // 电机驱动IO配置
|
|
MOTO_PWM_Init(3599,0); // 电机的PWM频率初始化20KHz
|
|
|
|
OLED_Init();
|
|
OLED_Clear();
|
|
OLED_ShowCHinese(0,0,2); // 显示汉字 车
|
|
OLED_ShowCHinese(16,0,3); // 显示汉字 速
|
|
OLED_ShowString(88,0,(u8*)"m/min",16); // OLED第一行显示整体车速 单位m/min
|
|
OLED_ShowString(0, 2,(u8*)"Left : RPM",12); // 显示左轮转 R单位RPM 表示每分钟车轮的圈数
|
|
OLED_ShowString(0, 3,(u8*)"Right: RPM",12); // 显示右轮转 R单位RPM 表示每分钟车轮的圈数
|
|
OLED_ShowString(0, 4,(u8*)"P: I: D: ",16); // 显示PID参数
|
|
OLED_ShowString(0, 6,(u8*)"Set_C: RPM",12); // 显设置的车轮转速单位RPM
|
|
OLED_ShowString(0, 7,(u8*)"Set_P: m/min",12); // 显设置的车轮转速单位RPM
|
|
|
|
Encoder_Init_TIM2();
|
|
TIM2 -> CNT=30000;
|
|
Encoder_Init_TIM4();
|
|
TIM4 -> CNT=30000;
|
|
|
|
MOTO_PWM_Out(100, 100);
|
|
|
|
Timer6_Init(); //最后启动定时器6
|
|
Delay_ms(100); //等待初始化完成
|
|
|
|
int Moto_Left=500;
|
|
int Moto_Right=500;
|
|
TIM3->CCR3 = Moto_Left; //更新pwm
|
|
TIM3->CCR4 = Moto_Right; //更新pwm
|
|
}
|
|
|
|
|