最新使用STM32CubeMx搭建平衡小车代码框架文档格式.docx
- 文档编号:1280773
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:17
- 大小:435.83KB
最新使用STM32CubeMx搭建平衡小车代码框架文档格式.docx
《最新使用STM32CubeMx搭建平衡小车代码框架文档格式.docx》由会员分享,可在线阅读,更多相关《最新使用STM32CubeMx搭建平衡小车代码框架文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
Step2.配置Debug,根据实际选择
Step3.配置外部时钟信号
Step4.配置TIM2(PWM发生器)
Step5.配置模拟IIC引脚
Step6.配置电机控制引脚
Step7.配置TIM3(用作微妙延时时钟),CubeMx生成的代码中不包含微妙延时,此部分用于实现模拟IIC的微妙延时
Step8.配置USART1(用于串口调试)
Step9.时钟配置
注:
关于输入时钟一定要按实际晶振频率填写,否则会造成时序混乱;
Step10.TIM2参数配置(10KHz)
Step11.配置TIM3(微妙延时定时器)
定时器时钟频率的计算:
定时器时钟频率:
72MHz
72MHz/(PSC+1)/ARR=72/(71+1)/1=1Mhz=1us;
Step12.配置GPIO口
Step13.生成项目配置
至此,关于平衡小车的软件框架配置已全部完成,点击项目生成,进入MDK编写代码:
代码片段1:
微妙函数的实现
#include"
delay.h"
tim.h"
voidDelay_us(uint32_tus){
uint16_tcounter=us&
0xffff;
HAL_TIM_Base_Start(&
htim3);
__HAL_TIM_SetCounter(&
htim3,counter);
while(counter>
1){
counter=__HAL_TIM_GetCounter(&
}
HAL_TIM_Base_Stop(&
}
voidDelay_ms(uint32_tms){
Delay_us(1000*ms);
代码片段2模拟IIC:
#defineHIGH1
#defineLOW0
#defineSDA_IN(){GPIOB->
CRL&
=0x0FFFFFFF;
GPIOB->
CRL|=0x40000000;
#defineSDA_OUT(){GPIOB->
CRL|=0x10000000;
}
#defineIIC_SCL(n)(n?
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET):
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET))//SCL
#defineIIC_SDA(n)(n?
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET):
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET))//SDA
#defineREAD_SDAHAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7)
voidIIC_Init(void)
{
IIC_SDA(HIGH);
IIC_SCL(HIGH);
voidIIC_Start(void)
SDA_OUT();
Delay_us(4);
IIC_SDA(LOW);
IIC_SCL(LOW);
}
voidIIC_Stop(void)
IIC_SDA(LOW);
Delay_us(4);
uint8_tIIC_Wait_Ack(void)
uint8_tucErrTime=0;
SDA_IN();
Delay_us
(1);
while(READ_SDA)
{
ucErrTime++;
if(ucErrTime>
250)
{
IIC_Stop();
return1;
}
return0;
voidIIC_Ack(void)
Delay_us
(2);
voidIIC_NAck(void)
}
voidIIC_Send_Byte(uint8_ttxd)
{
uint8_tt;
for(t=0;
t<
8;
t++)
{
IIC_SDA((txd&
0x80)>
>
7);
txd<
<
=1;
Delay_us
(2);
IIC_SCL(HIGH);
IIC_SCL(LOW);
}
uint8_tIIC_Read_Byte(uint8_tack)
uint8_ti,receive=0;
for(i=0;
i<
i++)
IIC_SCL(LOW);
Delay_us
(2);
IIC_SCL(HIGH);
receive<
if(READ_SDA)receive++;
Delay_us
(1);
}
if(!
ack)IIC_NAck();
elseIIC_Ack();
returnreceive;
代码片段3PID控制器
//50
#defineP_DATA70.0
//25.5
#defineI_DATA46.7
//1.25
#defineD_DATA0
//以上三值需根据实际调整参数
typedefstructPID{
intSetPoint;
doubleProportion;
doubleIntegral;
doubleDerivative;
intLastError;
intPrevError;
}PID;
voidIncPIDInit(PID*sptr)
sptr->
LastError=0;
PrevError=0;
Proportion=P_DATA;
Integral=I_DATA;
Derivative=D_DATA;
SetPoint=0;
intIncPIDCalc(PID*sptr,intnextPoint)
intiError,iIncpid;
iError=sptr->
SetPoint-nextPoint;
iIncpid=sptr->
Proportion*iError-\
sptr->
Integral*sptr->
LastError+\
Derivative*sptr->
PrevError;
PrevError=sptr->
LastError;
LastError=iError;
returniIncpid;
代码片段4PWM发生器
HAL_GPIO_WritePin(Left_Dir0_GPIO_Port,Left_Dir0_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(Left_Dir1_GPIO_Port,Left_Dir1_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(Right_Dir0_GPIO_Port,Right_Dir0_Pin,GPIO_PIN_SET);
HAL_GPIO_WritePin(Right_Dir1_GPIO_Port,Right_Dir1_Pin,GPIO_PIN_RESET);
__HAL_TIM_SetCompare(&
htim2,TIM_CHANNEL_1,0);
htim2,TIM_CHANNEL_2,0);
HAL_TIM_PWM_Start(&
htim2,TIM_CHANNEL_1);
htim2,TIM_CHANNEL_2);
更改PWM的占空比使用
HAL_TIM_SetCompare(&
htim2,TIM_CHANNEL_1,val)函数即可,其占空比的为用户设定的值除以ARR的值,即val/99+1;
即val直接等于占空比;
后记:
关于DMP的代码直接参考正点原子的MPU6050的代码即可;
重庆市普通高校“专升本”统一选拔考试大纲
《高等数学》(2019年版)
(考试科目代码20)
Ⅰ、考试大纲适用对象及考试性质
本大纲适用于重庆市普通高校“专升本”的理工类和经济类考生。
“专升本”考试结果将作为重庆市普通高校高职高专学生申请“专升本”的成绩依据。
本科院校根据考生考试成绩,按照已确定的招生计划择优录取。
因此,该考试应具有较高的
信度、效度,必要的区分度和适当的难度。
Ⅱ、考试内容及要求
一、一元函数微分学
1.理解函数概念,知道函数的表示法;
会求函数的定义域及函数值。
2.掌握函数的奇偶性、单调性、周期性、有界性。
3.理解复合函数与反函数的定义,会求单调函数的反函数。
4.掌握基本初等函数的性质与图像,了解初等函数的概念。
5.理解极限概念及性质,掌握极限的运算法则。
6.理解无穷小量与无穷大量的概念及两者的关系,掌握无穷小量的性质和无穷小量的比较。
7.了解夹逼准则与单调有界准则,掌握两个重要极限:
,
。
8.理解函数连续与间断的定义,理解函数间断点的分类,会利用连续性求极限,会判别函数间断点的类型。
9.理解闭区间上连续函数的有界性定理、最值定理、介值定理,并会用上述定理推证一些简单命题。
10.理解导数的定义及几何意义,会根据定义求函数的导数。
11.理解函数的可导与连续的关系。
12.熟练掌握基本初等函数的导数公式、导数的四则运算法则、复合函数求导法则、隐函数求导法、对数求导法及参数方程求导法,了解反函数的求导法则。
13.了解高阶导数的概念,熟练掌握初等函数的一阶和高阶导数的求法。
14.理解微分的定义、可微与可导的关系,了解微分的四则运算法则及一阶微分形式的不变性;
会求函数的微分。
15.理解罗尔(Rolle)定理、拉格朗日中值(Lagrange)定理,了解柯西(Cauchy)中值定理和泰勒(Taylor)中值定理。
会用罗尔定理证明方程根的存在性,会用拉格朗日中值定理证明一些简单不等式。
16.熟练掌握用洛必达(L’Hospital)法则求未定式的极限。
17.理解函数极值的概念、极值存在的必要条件及充分条件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 使用 STM32CubeMx 搭建 平衡 小车 代码 框架