久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32把IMU測量數(shù)據(jù)通過nrf24l01無線通信 源程序
[打印本頁]
作者:
wyyxz
時間:
2021-3-16 09:59
標題:
stm32把IMU測量數(shù)據(jù)通過nrf24l01無線通信 源程序
stm32把IMU測量數(shù)據(jù)通過nrf24l01無線通信,同時通過串口助手觀察通信是否成功。需要兩塊32的單片機進行通信
單片機源程序如下:
#include "main.h" //main.h 中含有TX/RX、軟件SPI/硬件SPI選擇配置選項
#include <string.h>
#include <stdio.h>
#include "Main.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "drv_UART.h"
#include "UART2.h"
#include "drv_delay.h"
#include "JY901.h"
#include "celiang.h"
uint8_t g_UartRxBuffer1[ 100 ] = "zmbyaaaaa";
const char *g_Ashining = "receive";
uint8_t g_TxMode = 0, g_UartRxFlag = 0;
uint8_t g_UartRxBuffer[ 100 ] = { 0 };
uint8_t g_RF24L01RxBuffer[ 32 ] = { 0 };
struct SAcc stcAcc; //加速度
struct SGyro stcGyro; //角速度
struct SAngle stcAngle; //角度
//CopeSerialData為串口2中斷調(diào)用函數(shù),串口每收到一個數(shù)據(jù),調(diào)用一次這個函數(shù)。
void CopeSerial2Data(unsigned char ucData)
{
static unsigned char ucRxBuffer[250];
static unsigned char ucRxCnt = 0;
ucRxBuffer[ucRxCnt++]=ucData; //將收到的數(shù)據(jù)存入緩沖區(qū)中
if (ucRxBuffer[0]!=0x55) //數(shù)據(jù)頭不對,則重新開始尋找0x55數(shù)據(jù)頭
{
ucRxCnt=0;
return;
}
if (ucRxCnt<9) {return;}//數(shù)據(jù)不滿11個,則返回
else
{
switch(ucRxBuffer[1])//判斷數(shù)據(jù)是哪種數(shù)據(jù),然后將其拷貝到對應的結構體中,有些數(shù)據(jù)包需要通過上位機打開對應的輸出后,才能接收到這個數(shù)據(jù)包的數(shù)據(jù)
{
//memcpy為編譯器自帶的內(nèi)存拷貝函數(shù),需引用"string.h",將接收緩沖區(qū)的字符拷貝到數(shù)據(jù)結構體里面,從而實現(xiàn)數(shù)據(jù)的解析。
case 0x51: memcpy(&stcAcc,&ucRxBuffer[2],8);break;
case 0x52: memcpy(&stcGyro,&ucRxBuffer[2],8);break;
case 0x53: memcpy(&stcAngle,&ucRxBuffer[2],8);break;
}
ucRxCnt=0;//清空緩存區(qū)
}
}
void CopeSerial1Data(unsigned char ucData)
{
UART2_Put_Char(ucData);//轉發(fā)串口1收到的數(shù)據(jù)給串口2(JY模塊)
}
uint16_t Array_Size(uint8_t * array_pt)
{
uint8_t * pt;
uint16_t size;
for(pt = array_pt; *pt != '\n'; pt++)
{
size++;
}
return size;
}
int main( void )
{
uint8_t j = 0;
//celiang();
// date();
/******IMU的初始化****/
char str[100];
unsigned char len,i;
Initial_UART1(9600);//接PC的串口
Initial_UART2(9600);//接JY-901模塊的串口
drv_delay_init();
drv_delay_500Ms(2); //等等JY-91初始化完成
/********無線的初始化 *******/
//串口初始化
drv_uart_init( 9600 );
//延時初始化
drv_delay_init( );
//
drv_button_init( );
//LED初始化
drv_led_init( );
//SPI初始化
drv_spi_init( );
//RF24L01引腳初始化
NRF24L01_Gpio_Init( );
//檢測nRF24L01
NRF24L01_check( );
RF24L01_Init( );
led_red_off( );
led_green_off( );
for( j = 0; j< 6; j++ )
{
led_red_flashing( );
led_green_flashing( );
drv_delay_500Ms( 1 );
}
/*******************循環(huán)*****/
while(1)
{
drv_delay_500Ms(2);
drv_delay_ms(10);
//角加速度
//輸出加速度
sprintf(str,"Acc:%.3f %.3f %.3f\r\n",(float)stcAcc.a[0]/32768*16,(float)stcAcc.a[1]/32768*16,(float)stcAcc.a[2]/32768*16);
UART1_Put_String(str);
// dengdai (str);
// j=Array_Size(str)+3;
NRF24L01_TxPacket(str ,28);
drv_delay_ms(10);
//輸出角速度
sprintf(str,"Gyro:%.3f %.3f %.3f\r\n",(float)stcGyro.w[0]/32768*2000,(float)stcGyro.w[1]/32768*2000,(float)stcGyro.w[2]/32768*2000);
UART1_Put_String(str);
drv_delay_ms(10);;
//輸出角度
sprintf(str,"Angle:%.3f %.3f %.3f\r\n",(float)stcAngle.Angle[0]/32768*180,(float)stcAngle.Angle[1]/32768*180,(float)stcAngle.Angle[2]/32768*180);
UART1_Put_String(str);
drv_delay_ms(10);
drv_delay_ms(10);//等待傳輸完成
led_red_flashing( );
//按鍵初始化
//drv_button_init( );
// RF24L01_Set_Mode( MODE_TX ); //發(fā)送模式
//模式切換
// if( BUTOTN_PRESS_DOWN == drv_button_check( ))
// {
// g_TxMode = 1 - g_TxMode; //模式會在 TX_MODE_1( 0 ),TX_MODE_2( 1 )之間切換
//
// //狀態(tài)顯示清零
// led_green_off( );
// led_red_off( );
//
// if( TX_MODE_1 == g_TxMode )
// {
// for( j = 0; j < 6; j++ )
// {
// led_red_flashing( ); //固定發(fā)送模式,紅燈閃爍3次
// drv_delay_500Ms( 1 );
// }
// }
// else
// {
// for( j = 0; j < 6; j++ )
// {
// led_green_flashing( ); //串口發(fā)送模式,綠燈閃爍3次
// drv_delay_500Ms( 1 );
// }
// }
// }
//
// //發(fā)送
// if( TX_MODE_1 == g_TxMode )
// {
// NRF24L01_TxPacket( (uint8_t *)g_Ashining,8); //模式1發(fā)送固定字符,1S一包
// drv_delay_500Ms( 1 );
// drv_delay_500Ms( 1 );
// led_red_flashing( );
// }
// else
// {
// //查詢串口數(shù)據(jù)
//
// j = drv_uart_rx_bytes( g_UartRxBuffer);
//
// if( 0 != j)
// {
// NRF24L01_TxPacket( g_UartRxBuffer, j );
// led_green_flashing( );
// }
// }
//
//
}
}
復制代碼
以上代碼51hei提供下載:
發(fā)送接收.7z
(120.58 KB, 下載次數(shù): 15)
2021-3-16 14:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲黄色高清视频
|
毛片毛片毛片毛片
|
久久久久久久av麻豆果冻
|
欧洲亚洲视频
|
中文字幕国产一区
|
狠狠干天天干
|
午夜影院免费体验区
|
成人小视频在线
|
色婷婷av久久久久久久
|
国产精品久久久久久一区二区三区
|
成人18亚洲xxoo
|
婷婷开心激情综合五月天
|
精品欧美激情精品一区
|
欧美一区二区在线观看视频
|
日本精品一区二区三区在线观看视频
|
精品国产乱码一区二区三区a
|
狠狠干影院
|
成人精品国产
|
精品视频一区二区
|
国产黄色在线观看
|
亚洲一区二区av在线
|
欧美日韩国产精品一区
|
国产一区2区
|
亚洲免费精品
|
国产日韩一区二区三免费
|
久久亚洲91
|
精品熟人一区二区三区四区
|
精品久久久久久久久久久久
|
亚洲日本一区二区三区四区
|
久草视频在线播放
|
欧美精品国产一区二区
|
亚洲精品美女视频
|
欧美一区二区
|
华丽的挑战在线观看
|
午夜精品久久久久久不卡欧美一级
|
91精品久久久久久久久99蜜臂
|
成人精品一区二区三区
|
麻豆精品国产免费
|
亚洲精品免费视频
|
日韩激情视频一区
|
欧美阿v
|