用STM32F103读取JY62角度传感器的陀螺仪、加速度的数据

本文详细介绍了如何使用STM32F103C8T6单片机读取JY62角度传感器的陀螺仪和加速度数据。从准备工作、接线方式到程序讲解,包括串口配置、数据处理和UART打印,再到生成下载文件、下载程序的步骤,最终实现数据在串口调试助手中的正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 准备工作

  1. 硬件设备:JY62模块、六合一、USB-TTL、杜邦线、STM32F103C8T6单片机。给大家看下图片。
    在这里插入图片描述 在这里插入图片描述

2)软件准备 : KEIL 5 (5.17版本的)
3)示例代码

2 接线方式

1、使用数据线将STM32F103C8T6与电脑连接通信 注意:给STM32F103C8T6需要用5V才可以
2、JY62与STM32F103C8T6使用杜邦线连接。具体接线如下图所示:
具体接线方式如下:

USB-TTL STM32F103C8T6 JY-62
VCC(5V) VCC VCC
TX RX1(PA10),PA3 TX
RX TX1(PA9),PA2 RX
GND GND, GND GND

3 程序讲解

3.1 串口程序讲解

从上面的接线可以看出呢。一共用了32单片机的两个UART引脚。一个是UART1这个是把处理过的数据发送到PC端。一个是UART2这个是用来接收JY62传过来的数据。UART2也是使用中断来接收到数据。这些都是在初始化UART2的时候来配置的。前面那部分都是默认的串口配置。设置波特率、数据位8位、停止位1、无奇偶检验、配置串口模式。最后再初始化USART2。一般都是固定的。后面的USART_ITConfig。就是开启串口中断。

USART_InitStructure.USART_BaudRate = baudrate;
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;
	USART_InitStructure.USART_StopBits = USART_StopBits_1;
	USART_InitStructure.USART_Parity = USART_Parity_No ;
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
	USART_Init(USART2, &USART_InitStructure); 
	USART_ITConfig(USART2, USART_IT_TXE, DISABLE); //串口2的发送端TX是不使能的   
	USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//串口2的接收端的RX使能
使能串口中断后呢。UART2的数据都会一个个字节的往DR寄存器里面写。
void USART2_IRQHandler(void)
{
   
  if(USART_GetITStatus(USART2, USART_IT_TXE) != RESET)//由于TX中断被禁止了所以这个if是不会进入的。
  {
      
    USART_SendData(USART2, TxBuffer[TxCounter++]); 
    USART_ClearITPendingBit(USART2, USART_IT_TXE);
    if(TxCounter == count) USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
  }
	else if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)//直接进入RX的这个中断
  {
   
		CopeSerial2Data((unsigned char)USART2->DR);//把UART2的数据给到DR寄存器后呢,再由这个CopeSerial2Data函数把数据给到给出去了
		USART_ClearITPendingBit(USART2, USART_IT_RXNE);
  }
	
	USART_ClearITPendingBit(USART2,USART_IT_ORE);
}

当串口2中断接收到数据后会通过上面的CopeSerial2Data()函数。存在ucRxBuffer[250]。这个数组里面。然后就可以根据商家给的通讯协议去进行数据处理了。

void CopeSerial2Data(unsigned 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值