环境数据采集进程

搭建主体框架

  1. 配置主时钟,RCC,一般是外部晶振
    看 在这里插入图片描述

  1. 选定系统时钟
    在这里插入图片描述

  1. 开启串口1,
    这个可以说是必须的,因为要通过它看调试信息,print重定义的位置
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


  1. 操作系统的配置
    在这里插入图片描述

在这里插入图片描述

这个也许以后还真会用上,后续看吧
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


  1. 系统时钟选择
    在这里插入图片描述

    使用RTOS时不改会有这个警报
    在这里插入图片描述


  1. 生成
    在这里插入图片描述

在这里插入图片描述


print的重定义

  • 在main.c但是main函数外进行重定义
  • 另外,需要 #include “stdio.h”
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

/* USER CODE BEGIN 0 */
int fputc(int ch, FILE *fp)
{
	while(!(USART1->SR * (1<<7)));
	USART1->DR = ch;
	return ch;
}

// 用printf   /r/n才能换行
/* USER CODE END 0 */
\r\n可以换行,其它都无效,用空格替代

这边是对 fputc 进行的重定义
“如果用户有定义,则用用户定义的函数。如果没有定义,则用这边这个”

总览

在这里插入图片描述

配置的几个进程会在 freertos.c内部
#include "stdio.h"基本每个都需要

下载

按复位才能下载的问题
改代码
msp.c中改为NOJTAG
改配置

环境采集总览

  • 环境的采集必须优先实现且频率最高

MPU6050

  • 传感器的驱动,以及eMLP库的使用
  • mpu_dmp_get_data() 这个是在调用库
    • acc_x,acc_y,acc_z 加速度
    • gyro_x,gyro_y,gyro_z 角速度
    • pitch 俯仰角
    • roll 翻滚角
    • yaw 偏航角
  • 驱动,
  • IIC接口

其实应该各种协议都可以传数据,你的代码尚且还是用的 UART 传的呢
这个不对不对,ST-LINK上是clk和dio,不是rx和tx
ST-LINK和 USB转TTL不一样

芯片管脚

  • IIC的两根管脚,SCL和SDA
  • 时钟线和数据线
  • 一种思路是把STM上的两根管脚的功能配置为IIC
  • 这边利用的另外一种常用的demo,只需要把他们配置为普通的GPIO
  • 然后对GPIO采用IIC时序模拟的方法来进行驱动
  • 这样子的好处就是要移植吧
  • 把一个GPIO弄为GPIO_Output,并且可以进行一个重命名
  • MPU6050(主要看地址)
  • 悬空或接地 0x68(104)
  • 接VCC 0x69(105)

不同的芯片,GPIO寄存器的格式不同,MODER与CRH/CRL
CRH,CRL。16端口下的,0~7GPIO寄存器用的CRL,其它用的CRH
不同的芯片,引入delay.c时注意要修改主频。否则容易照成时序的混乱
不同的芯片,sys.h下寄存器的地址偏移也要修改,不一样的

调用eMPL库计算欧拉角

  • 添加全局的宏,修改函数
  • 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

关于这个移植,应该修改平台,调用其中mpu的库函数
在这里插入图片描述

  • 读取速度要相对快一些,读取是200Hz,放到FIFO中
  • 读取太慢FIFO会溢出
  • 数据读错时的一些操作
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值