|
用的正點(diǎn)原子f103zet6的一套10軸傳感器和wifi8266完成,實(shí)現(xiàn)數(shù)據(jù)由wifi透傳完成。稍加改改就能移植其他
單片機(jī)源程序如下:
- #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; //加速第一次獲取鏈接狀態(tài)
-
- delay_init(); //延時(shí)函數(shù)初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
- uart_init(115200); //串口初始化為9600
- LED_Init(); //初始化與LED連接的硬件接口
- USART2_init(115200);
- imu901_init(); /* IMU901模塊初始 */
- usart3_init(115200); //串口初始化為115200
- esp8266_start_trans(); //esp8266進(jìn)行初始化
-
- esp8266_send_data("開始發(fā)送數(shù)據(jù) \n",50);
-
-
- while (1)
- {
- if (imu901_uart_receive(&ch, 1)) /*!< 獲取串口fifo一個(gè)字節(jié) */
- {
- if (imu901_unpack(ch)) /*!< 解析出有效數(shù)據(jù)包 */
- {
- if (rxPacket.startByte2 == UP_BYTE2) /*!< 主動(dòng)上傳的數(shù)據(jù)包 */
- {
- atkpParsing(&rxPacket);
- }
- }
- }
- else
- {
- delay_ms(1);
- times++;
- if (times % 300 == 0) LED0=~LED0; /* 閃爍LED,提示系統(tǒng)正在運(yùn)行 */
- if (times % 1000 == 0) /*!< 1秒打印一次數(shù)據(jù) */
- {
-
- printf("\r\n");
- printf("姿態(tài)角[XYZ]: %-6.1f %-6.1f %-6.1f (°)\r\n", attitude.roll, attitude.pitch, attitude.yaw); //串口調(diào)試可以看的
- 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("磁場(chǎng)[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("姿態(tài)角[XYZ]: %.2f %.2f %.2f (°)\r\n",attitude.roll, attitude.pitch, attitude.yaw); //由wifi發(fā)送的數(shù)據(jù)
- 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("磁場(chǎng)[XYZ] : %-6d %-6d %-6d (uT)\r\n",magData.mag[0], magData.mag[1], magData.mag[2]);
-
-
-
-
- }
- }
-
-
- }
- }
復(fù)制代碼
Keil代碼下載:
IMU901 F1 - 實(shí)驗(yàn).7z
(207.22 KB, 下載次數(shù): 13)
2021-11-2 21:29 上傳
點(diǎn)擊文件名下載附件
imu901
|
評(píng)分
-
查看全部評(píng)分
|