当前位置: 首页 > wzjs >正文

高质量的常州网站建设甘肃省建设信息平台

高质量的常州网站建设,甘肃省建设信息平台,淘宝做短视频网站,少儿编程加盟费一、任务目标 基于STM32F103ZET6单片机蓝牙模块无线接收发送来的数据,通过485通信,使用中航ZH-E3L字符控制卡及其通信协议,使得蓝牙无线接收到数据显示在LED屏上。 二、使用模块 1、STM32F103ZET6的正点原子STM32精英开发板 2、串口通信的…

一、任务目标

        基于STM32F103ZET6单片机+蓝牙模块无线接收发送来的数据,通过485通信,使用中航ZH-E3L字符控制卡及其通信协议,使得蓝牙无线接收到数据显示在LED屏上。

二、使用模块

1、STM32F103ZET6的正点原子STM32精英开发板

2、串口通信的蓝牙模块

3、中航ZH-E3L字符控制卡

4、LED显示屏

三、实现思路

        单片机搭载蓝牙模块接收另一端蓝牙无线发送过来的数据信息,单片机将蓝牙收到数据信息按照中航字符卡的485通信协议重新组包,然后通过485通信传输给中航字符控制卡,中航字符控制卡则通过HUB08接口将数据显示在与之相连的LED屏上。

四、中航字符卡通信协议解析

1、中航字符卡使用说明文档中协议说明如下:

               由协议可知,单片机需要发送的数据格式整理如下:

void SetData1_toLED( )
{	tempbuff[0]=0x78;//包头tempbuff[1]=0x34;//协议版本tempbuff[2]=0x01;tempbuff[3]=0x00;//字符分区 00 01tempbuff[4]=0x29;//命令:更新tempbuff[5]=0x12;//识别标志tempbuff[6]=0xF2;//识别标志tempbuff[7]=0x00;//识别标志tempbuff[8]=0x00;//识别标志tempbuff[9]=0x00;//帧计数tempbuff[10]=0x00;//帧计数tempbuff[11]=0x00;//帧计数tempbuff[12]=0x00;//帧计数
}void SetData2_toLED( )
{	tempbuff1[0]=0x01;//tempbuff1[1]=0x00;//字符分区IDtempbuff1[2]=0x01;//GB2312编码方式tempbuff1[3]=0x02;//立即显示模式tempbuff1[4]=0x00;//字符串索引tempbuff1[5]=0x01;//颜色序号:红色
}

五、开发实现过程

1、建立cubemx工程

2、蓝牙通信使用串口1

3、485通信使用串口2

4、485发送使能引脚 PD7配置

六、程序代码片段

1、usart1.c

#include "usart1.h"#include "usart.h"/**********重定义函数**********/struct __FILE
{int handle;};FILE __stdout;
//定义_sys_exit()以避免使用半主机模式
void _sys_exit(int x)
{x = x;
}//重定义fputc函数
int fputc(int ch, FILE *f)
{while((USART2->SR&0X40)==0);//循环发送,直到发送完毕USART2->DR = (uint8_t) ch;return ch;
}//串口1发送串口屏数据send_data
void	UserUart2Send(uint8_t	*send_data,uint8_t	send_len)
{while(send_len--){HAL_UART_Transmit(&huart2,send_data++,1,20);}
}/*78 34 01 00 29 BC FD 00 00 00 00 00 00 14 00
01 00 01 02 06 01 0C 00 CE D2 B0 AE D6 D0 BA
BD C8 ED BC FE 45 8C A5*/uint8_t tempbuff[13];//定义发送数据变量数组
uint8_t tempbuff1[6];//定义发送数据变量数组
uint8_t tempbuff2[33];//全部数据
uint8_t tempbuff3[10];uint8_t tempbuff4[36];//组成向LED屏发送数据的数组tempbuff
//void SetData_toLED(uint8_t highAdd,uint8_t lowAdd,uint8_t highData,uint8_t lowData)
//{
////	uint16_t tempbuff[8];
////	uint8_t t;
void SetData1_toLED( )
{	tempbuff[0]=0x78;//包头tempbuff[1]=0x34;//协议版本tempbuff[2]=0x01;tempbuff[3]=0x00;//字符分区 00 01tempbuff[4]=0x29;//命令:更新tempbuff[5]=0x12;//识别标志tempbuff[6]=0xF2;//识别标志tempbuff[7]=0x00;//识别标志tempbuff[8]=0x00;//识别标志tempbuff[9]=0x00;//帧计数tempbuff[10]=0x00;//帧计数tempbuff[11]=0x00;//帧计数tempbuff[12]=0x00;//帧计数
}void SetData2_toLED( )
{	tempbuff1[0]=0x01;//tempbuff1[1]=0x00;//字符分区IDtempbuff1[2]=0x01;//GB2312编码方式tempbuff1[3]=0x02;//立即显示模式tempbuff1[4]=0x00;//字符串索引tempbuff1[5]=0x01;//颜色序号:红色
}void SetData3_toLED( )
{tempbuff3[0]=blue_receive_buf[4];tempbuff3[1]=blue_receive_buf[5];tempbuff3[2]=blue_receive_buf[6];tempbuff3[3]=blue_receive_buf[7];tempbuff3[4]=blue_receive_buf[8];tempbuff3[5]=blue_receive_buf[9];tempbuff3[6]=blue_receive_buf[10];tempbuff3[7]=blue_receive_buf[11];tempbuff3[8]=blue_receive_buf[12];tempbuff3[9]=blue_receive_buf[13];}

2、main.c的while循环

  if(blue_transmite_flag==1)//如果蓝牙收到命令数据{RS485_Ctr_TX;//控制485发送使能//填充协议前一段固定字段				 SetData1_toLED( );//填充通信协议中固定数据部分到tempbuff数组//计算协议的数据长度lenth1=blue_receive_buf[2]+8;lenth1_high=lenth1%256;//低字节在前lenth1_low=lenth1/256;//高字节在后//填充协议的数据中的固定字段到tempbuff1数组SetData2_toLED( );//计算协议的数据中的实际数据的长度lenth2=blue_receive_buf[2];lenth2_high=lenth2%256;//低字节在前lenth2_low=lenth2/256;//高字节在后//填充协议的实际的数据内容到tempbuff3数组SetData3_toLED( );//填充协议的整包数据从开始到CRC前的数据的CRC16校验值到tempbuff2数组SetDataAll1_toLED( );checkcrc16=GetCRC(tempbuff2,33);crc16_high=checkcrc16%256;//低字节在前crc16_low=checkcrc16/256;//高字节在后//填充整包通信协议数据到tempbuff4数组SetDataAll2_toLED( );UserUart2Send(tempbuff4,sizeof(tempbuff4));//通过485串口将整包数据发送给中航字符控制卡从而在LED屏显示数据内容blue_transmite_flag=0;//蓝牙接收标志位置0}

七、实物测试结果

八、程序工程源码下载链接

https://download.csdn.net/download/jacklood/91378865


文章转载自:

http://8bj9OMBS.yLxgw.cn
http://NLFUd2ua.yLxgw.cn
http://uqWyW3Q3.yLxgw.cn
http://XUYOWcoG.yLxgw.cn
http://nbGwv84T.yLxgw.cn
http://uvCSDa4R.yLxgw.cn
http://lTRw1ysZ.yLxgw.cn
http://6OJLjXyN.yLxgw.cn
http://PDjXiaC5.yLxgw.cn
http://0RQgOuuO.yLxgw.cn
http://fw6B3BRg.yLxgw.cn
http://lKoibBTe.yLxgw.cn
http://DLdUxMqy.yLxgw.cn
http://6bb3hAQe.yLxgw.cn
http://VR4TWwAZ.yLxgw.cn
http://lOith8SC.yLxgw.cn
http://ZGpU2aSJ.yLxgw.cn
http://jL63NlqW.yLxgw.cn
http://JVRkmhnK.yLxgw.cn
http://LqwSLx9x.yLxgw.cn
http://HCiGRNhB.yLxgw.cn
http://PCLO2mKV.yLxgw.cn
http://LgWhCfE8.yLxgw.cn
http://f7v9t93f.yLxgw.cn
http://n6nwzPVu.yLxgw.cn
http://95zO0IQL.yLxgw.cn
http://6xv3isYP.yLxgw.cn
http://skxHYkGf.yLxgw.cn
http://RKLF9klR.yLxgw.cn
http://PiGKeyhV.yLxgw.cn
http://www.dtcms.com/wzjs/767575.html

相关文章:

  • 网站开发工具特点总结域名备案和网站备案有什么区别
  • 重庆智能模板建站东营教育信息网官网
  • 网站建设培训视频建设网站的公司排名
  • 企业网站建设的背景和目的淄博网站公司
  • 张家港电脑网站制作网站开发html文件规范
  • 什么免费网站可以链接域名全网营销公司
  • 行业网站源码河北邢台区号
  • 多仓库版仓库管理网站建设源码it运维
  • 张家港江阴网站制作广州网站建设网站定制
  • 怎么用idea做响应式网站百度小说风云榜今天
  • jq做6个网站做什么好如何利用网络进行推广和宣传
  • 西山区城市建设局网站新网站seo技术
  • 学校网站建设经验介绍淘宝网店代运营哪家好
  • 吕梁做网站的公司网站精简布局
  • 网站推广软文选天天软文seo优化sem
  • 设计师网站介绍wordpress jetpack 3.7.2
  • 网站地图在线制作工具品牌网站制作简创网络
  • 浙江邮电建设工程有限公司网站网站平台建设合同
  • 怎样做网站运营上海加盟网站建设
  • 开发一个网站需要多少人网站空间后台登录
  • 珠宝销售网站源码如何架设一个网站
  • 包装盒在线设计网站简历表格 个人简历
  • 单页网站模板做seo计算机基础培训机构
  • 苏州建设网站公司在什么地方学而思网校官网
  • 苏州建设交易中心网站廊坊视频优化推广
  • 网站建设设计风格描述thinkphp
  • html5企业网站案例余姚网站公司
  • 备案网站还是域名h5制作软件免费 fou
  • 创建网站基本步骤怎么做兼职类网站
  • 辽宁城乡建设网站电子商务公司名称大全