用的正点原子f103zet6的一套10轴传感器和wifi8266完成,实现数据由wifi透传完成。稍加改改就能移植其他
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "usart2.h"
- #include "string.h"
- #include "imu901.h"
- #include "usart3.h"
- #include "stdio.h"
- #include "timer.h"
- int main(void)
- {
- uint32_t times = 0;
- uint8_t ch;
- // u8 *p;
- // u16 t=999; //加速第一次获取链接状态
-
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- uart_init(115200); //串口初始化为9600
- LED_Init(); //初始化与LED连接的硬件接口
- USART2_init(115200);
- imu901_init(); /* IMU901模块初始 */
- usart3_init(115200); //串口初始化为115200
- esp8266_start_trans(); //esp8266进行初始化
-
- esp8266_send_data("开始发送数据 \n",50);
-
-
- while (1)
- {
- if (imu901_uart_receive(&ch, 1)) /*!< 获取串口fifo一个字节 */
- {
- if (imu901_unpack(ch)) /*!< 解析出有效数据包 */
- {
- if (rxPacket.startByte2 == UP_BYTE2) /*!< 主动上传的数据包 */
- {
- atkpParsing(&rxPacket);
- }
- }
- }
- else
- {
- delay_ms(1);
- times++;
- if (times % 300 == 0) LED0=~LED0; /* 闪烁LED,提示系统正在运行 */
- if (times % 1000 == 0) /*!< 1秒打印一次数据 */
- {
-
- printf("\r\n");
- printf("姿态角[XYZ]: %-6.1f %-6.1f %-6.1f (°)\r\n", attitude.roll, attitude.pitch, attitude.yaw); //串口调试可以看的
- printf("加速度[XYZ]: %-6.3f %-6.3f %-6.3f (g)\r\n", gyroAccData.faccG[0], gyroAccData.faccG[1], gyroAccData.faccG[2]);
- printf("角速度[XYZ]: %-6.1f %-6.1f %-6.1f (°/s)\r\n", gyroAccData.fgyroD[0], gyroAccData.fgyroD[1], gyroAccData.fgyroD[2]);
- printf("磁场[XYZ] : %-6d %-6d %-6d (uT)\r\n", magData.mag[0], magData.mag[1], magData.mag[2]);
- printf("气压 : %-6dPa %-6dcm\r\n", baroData.pressure, baroData.altitude);
-
- u3_printf("姿态角[XYZ]: %.2f %.2f %.2f (°)\r\n",attitude.roll, attitude.pitch, attitude.yaw); //由wifi发送的数据
- u3_printf("加速度[XYZ]: %.2f %.2f %.2f (g)\r\n",gyroAccData.faccG[0], gyroAccData.faccG[1], gyroAccData.faccG[2]);
- u3_printf("角速度[XYZ]: %.2f %.2f %.2f (°/s)\r\n",gyroAccData.fgyroD[0], gyroAccData.fgyroD[1], gyroAccData.fgyroD[2]);
- u3_printf("磁场[XYZ] : %-6d %-6d %-6d (uT)\r\n",magData.mag[0], magData.mag[1], magData.mag[2]);
-
-
-
-
- }
- }
-
-
- }
- }
复制代码
Keil代码下载:
IMU901 F1 - 实验.7z
(207.22 KB, 下载次数: 13)
|