IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 晨起管家----蓝牙传图 -> 正文阅读

[嵌入式]晨起管家----蓝牙传图


参考的博文: stm32调用OV7670获取图像并通过蓝牙传输至PC.

在回家的前一天,项目负责人找到我,给我介绍了该项目的大概情况,让我解决他们目前想要解决的一个问题(用无限的方式来传输图片到电脑或手机上)。比较感兴趣,就接活了。

蓝牙

蓝牙模块

使用了两个蓝牙模块。
一个是在实验室里找到的前辈得HC-05模块(蓝牙模块一)请添加图片描述
另一个是正点原子的(蓝牙模块二)请添加图片描述

蓝牙模块的AT指令使用

将USB TO TTL模块和蓝牙模块相连插在电脑上

我使用正点原子给的这个软件
在这里插入图片描述
使用蓝牙模块一的时候
软件的波特率要和蓝牙模块的波特率一样;发送AT指令前要按住它的按键。

注意:慎将波特率设置为1382400,因为设置是可以设置成功,但是设置之后,由于我的电脑的波特率不能达到1382400,所以不能用电脑对它进行下一步操作(解决办法:写一个程序,让单片机的USART以1382400的波特率给模块发送AT指令)

使用蓝牙模块二的时候
如果KEY在上电前就为5V,软件的波特率固定为38400(这个很棒,解决了上面的问题)
如果在上电后与5V电源相连,软件的波特率要和蓝牙模块的波特率一样

详情请看相关资料

蓝牙模块配置

与单片机连接的蓝牙模块(主)

主蓝牙模块:
NAME:HC-05
PSWD:1234
CMODE:0
ROLE:1
ADDR:20:19:09:24:00:76
UART:115200,0,0

与电脑连接的蓝牙模块(从)

从蓝牙模块:
NAME:HU
PSWD:1234
CMODE:0
ROLE:0
ADDR:98:d3:34:91:2a:56
UART:115200,0,0

注意:PSWD要一样,主的AT+BIND地址要配置为从的地址

蓝牙模块发送数据

蓝牙模块二(主)和单片机相连,使用USART3发送数据
波特率配置为115200

				r = (u8)(0x1f&(color>>11));
				g = (u8)((color&0x07c0)>>6);
				b = (u8)(0x1f&color);
				send = (r<<10)|(g<<5)|b;
				

				
				Usart_SendByte(USARTx,(u8)(send&0x00ff));
				while(USART_GetFlagStatus(USART3,USART_FLAG_TC) != SET);
				Usart_SendByte(USARTx,(u8)((send&0xff00)>>8));
				while(USART_GetFlagStatus(USART3,USART_FLAG_TC) != SET);

这里用到了RGB565转换成RGB555其实就是把G的最后一位去掉,然后RG右移一位

蓝牙模块接受数据

蓝牙模块一(从)和电脑相连,使用虚拟串口接收数据

import serial
ser = serial.Serial("com5", 115200)

f = open("D:/BlueTooth/test.bmp", "w+b")			
i = (320 * 240 * 2)
head = b'\x42\x4d\x38\x58\x02\x00\x00\x00\x00\x00\x36\x00\x00\x00\x28\x00\x00\x00\x40\x01\x00\x00\xf0\x00\x00\x00\x01\x00\x10\x00\x00\x00\x00\x00\x02\x58\x02\x00\x23\x2e\x00\x00\x23\x2e\x00\x00\x00\x00\x00\x00\x00\x00'
print(head)

f.write(head)


while True:
    a=ser.read()
    if(a)!=b'b':
        print("Wait")
        # ser.write("w")

    else:
        print("OK")
        break
        
while i > 0:
    data = ser.read()
    print(data)
    if data == b'':
        continue
    else:
        f.write(data)
        i -= 1

f.write(b'\x00\x00')
f.close()
ser.close()

详情可以参考开头提到的博文

演示

演示视频.

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:30:35  更:2021-08-28 09:32:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:41:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码