欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
stm32串口接JY901源程序
[打印本頁]
作者:
愛慕春妮
時間:
2021-8-3 12:00
標題:
stm32串口接JY901源程序
WT901C485接線圖.jpg
(125.68 KB, 下載次數: 53)
下載附件
2021-8-3 14:55 上傳
WT901C485現象.jpg
(94.91 KB, 下載次數: 54)
下載附件
2021-8-3 14:55 上傳
單片機源程序如下:
/*
編寫者:Kevin
編譯環境:MDK-Lite Version: 5.17
初版時間: 2016-1-31
功能:
用STM32Core平臺串口2讀取JY901的數據,然后通過串口1打印到串口助手,串口助手波特率要選為9600。
JY-901的波特率要修改為9600.
注意:示例程序輸出的是ASCLL碼,用16進制(HEX)顯示是不能看到準確數據的。
硬件接線:
USB-TTL工具 STM32Core JY901
VCC ----- VCC -------------------------- VCC
TX ----- RX1(管腳10)
RX ----- TX1(管腳9)
GND ----- GND -------------------------- GND
TX2(管腳2)RX2(管腳3)需要轉換成485總線電平
A ---- A
B ---- B
------------------------------------
*/
#include <string.h>
#include <stdio.h>
#include "Main.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "UART1.h"
#include "UART2.h"
#include "delay.h"
#include "JY901.h"
#include "DIO.h"
struct STime stcTime;
struct SAcc stcAcc;
struct SGyro stcGyro;
struct SAngle stcAngle;
struct SMag stcMag;
struct SDStatus stcDStatus;
struct SPress stcPress;
struct SLonLat stcLonLat;
struct SGPSV stcGPSV;
struct SQ stcQ;
unsigned char cmd[8] = {0X50,0X03,0X00,0X34,0X00,0X0C,0X09,0X80};//讀取0X34之后的12個寄存器
void CharToShort(unsigned char cTemp[],short sTemp[],short sShortNum)
{
int i;
for (i = 0;i<3;i++)
sTemp[i] = (cTemp[2*i+sShortNum]<<8)|(cTemp[2*i+sShortNum+1]&0xff);
}
//CopeSerialData為串口2中斷調用函數,串口每收到一個數據,調用一次這個函數。
void CopeSerial2Data(unsigned char ucData)
{
static unsigned char ucRxBuffer[250];
static unsigned char ucRxCnt = 0;
ucRxBuffer[ucRxCnt++]=ucData; //將收到的數據存入緩沖區中
if (ucRxBuffer[0]!=0x50) //數據頭不對,則重新開始尋找0x55數據頭
{
ucRxCnt=0;
return;
}
if (ucRxCnt<29) {return;}//數據不滿29個,則返回
else
{
ucRxCnt=0;//清空緩存區,將接收緩沖區的字符拷貝到數據結構體里面,從而實現數據的解析。
CharToShort(ucRxBuffer,stcAcc.a,3);
CharToShort(ucRxBuffer,stcGyro.w,9);
CharToShort(ucRxBuffer,stcMag.h,15);
CharToShort(ucRxBuffer,stcAngle.Angle,21);
}
}
void CopeSerial1Data(unsigned char ucData)
{
UART2_Put_Char(ucData);//轉發串口1收到的數據給串口2(JY模塊)
}
int main(void)
{
char str[100];
SysTick_init(72,10);//設置時鐘頻率
Initial_UART1(9600);//接PC的串口
Initial_UART2(9600);//接WT901C485模塊的串口
LED_ON();
delay_ms(1000);//等等WT901C485模初始化完成
while(1)
{
UART2_Put_String(cmd,8);//發送讀取0X34之后的12個寄存器,也就是加速度 角速度 角度和磁場
delay_ms(500);
//輸出加速度
printf("Acc:%.3f %.3f %.3f\r\n",(float)stcAcc.a[0]/32768*16,(float)stcAcc.a[1]/32768*16,(float)stcAcc.a[2]/32768*16);
delay_ms(10);
//輸出角速度
printf("Gyro:%.3f %.3f %.3f\r\n",(float)stcGyro.w[0]/32768*2000,(float)stcGyro.w[1]/32768*2000,(float)stcGyro.w[2]/32768*2000);
delay_ms(10);
//輸出角度
printf("Angle:%.3f %.3f %.3f\r\n",(float)stcAngle.Angle[0]/32768*180,(float)stcAngle.Angle[1]/32768*180,(float)stcAngle.Angle[2]/32768*180);
delay_ms(10);
//輸出磁場
printf("Mag:%d %d %d\r\n\r\n",stcMag.h[0],stcMag.h[1],stcMag.h[2]);
delay_ms(10);//等待傳輸完成
}//主循環
}
復制代碼
代碼下載,初學,僅供參考,如有錯誤請指正:
STM32Core串口JY901Modbus接串口助手.7z
(460.02 KB, 下載次數: 16)
2021-8-3 15:00 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
收費的規劃
時間:
2022-1-13 10:29
struct STime stcTime;
struct SAcc stcAcc;
struct SGyro stcGyro;
struct SAngle stcAngle;
struct SMag stcMag;
struct SDStatus stcDStatus;
struct SPress stcPress;
struct SLonLat stcLonLat;
struct SGPSV stcGPSV;
struct SQ stcQ;
這些是啥意思哇,定義的都是什么東西
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1