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

stm32 之20.HC-06蓝牙模块

原理图显示使用usart3串口使用的是PB10和PB11引脚

 直接配置usart3串口协议

void usart3_init(uint32_t baud)
{GPIO_InitTypeDef GPIO_InitStructureure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;//端口B硬件时钟打开RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);//串口3硬件时钟打开RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//配置PA9 PA10为AF模式(复用功能)GPIO_InitStructureure.GPIO_Pin   = GPIO_Pin_11 | GPIO_Pin_10 ; 	//9 10号引脚GPIO_InitStructureure.GPIO_Mode  = GPIO_Mode_AF;//输出模式第三种模式AF模式GPIO_InitStructureure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructureure.GPIO_Speed = GPIO_High_Speed;//高速,速度越高,响应越快,但是功耗会更高GPIO_InitStructureure.GPIO_PuPd  = GPIO_PuPd_NOPULL;//不使能上下拉电阻GPIO_Init(GPIOB,&GPIO_InitStructureure);//由于引脚支持很多功能,需要指定该引脚的功能,当前要制定支持USART1GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_USART3);GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_USART3);//配置USART1相关参数:波特率,数据位,停止位,校验位USART_InitStructure.USART_BaudRate = baud;   //波特率,就是通信的速度USART_InitStructure.USART_WordLength = USART_WordLength_8b; //8位数据位USART_InitStructure.USART_StopBits = USART_StopBits_1;  //1个停止位USART_InitStructure.USART_Parity = USART_Parity_No;    //不需要校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //硬件流控制功能不需要USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;   //串口允许发送和接收数据USART_Init(USART3, &USART_InitStructure);//配置中断触发方式,接收到一个字节,就通知CPU处理USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//NVIC配置其优先级NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;  //中断号NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;   //抢占优先级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;      //响应优先级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    //打开通道给NVIC管理NVIC_Init(&NVIC_InitStructure);//使能USART1工作USART_Cmd(USART3, ENABLE);}

主函数代码

//通过usart3串口发送数据给pc端
void usart3_send_str(char *str)
{char *p = str;while(*p!='\0'){/* 发送一个字节 */USART_SendData(USART3,*p);/* 等待发送完毕 */while(USART_GetFlagStatus(USART3,USART_FLAG_TXE) == RESET);p++;}}int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//抢占优先级0~3,支持4级!//响应优先级0~3,支持4级!key_init();Led_init();usart1_init(115200);usart3_init(9600);usart3_send_str("AT+NAMETWen\r\n");while(1){}
}void USART3_IRQHandler(void)
{uint8_t d;if(USART_GetITStatus(USART3,USART_IT_RXNE) == SET){d = USART_ReceiveData(USART3);if(d == '1')PFout(10)=0;if(d == 'a')PFout(10)=1;/* 发送一个字节 */USART_SendData(USART1,d);/* 等待发送完毕 */while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);/* 告诉CPU,已经完成接收中断请求,可以响应新的接收中断请求 */USART_ClearITPendingBit(USART3,USART_IT_RXNE);}}

相关文章:

stm32 之20.HC-06蓝牙模块

原理图显示使用usart3串口使用的是PB10和PB11引脚 直接配置usart3串口协议 void usart3_init(uint32_t baud) {GPIO_InitTypeDef GPIO_InitStructureure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;//端口B硬件时钟打开RCC_AHB1PeriphClockC…...

[技术杂谈]macOS上todesk无法远程操作鼠标键盘

远程到被控Mac后能看到画面,鼠标键盘操作无反应 远程后发现画面显示正常,但是键盘和鼠标的操作没有响应 可能是辅助功能没有勾选ToDesk_Session的权限。 可按以下步骤操作: 1> 在左上角点击苹果图标,选择“系统偏好设置” …...

【C++设计模式】用简单工厂模式实现按汽车重量输出汽车类型

2023年8月24日&#xff0c;周四凌晨 #include<iostream>class CarType{ public:virtual std::string getType()0; };class MiniCar:public CarType{ public:std::string getType() override{return "小型车";}; };class MidSizeCar:public CarType{ public:std…...

【Ubuntu20.04安装Nvidia驱动、CUDA和CUDNN】

Ubuntu20.04安装Nvidia驱动、CUDA和CUDNN 1 Nvidia驱动安装1.1 安装1.2 安装Nvidia可能会遇到的问题1.2.1 NVIDIA 驱动与 Nouveau 驱动不兼容1.2.2 ERROR: Unable to find the development tool cc 2 CUDA安装2.1 下载和安装2.2 配置CUDA环境 3 安装CUDNN4 切换CUDA版本 1 Nvid…...

[Python进阶] 类的设计模式

4.11 设计模式 在Python中&#xff0c;类的设计模式是指一种通用的解决方案或设计模板&#xff0c;针对特定的问题或需求构建类结构&#xff0c;并提供相关的方法和属性。这些设计模式可以帮助开发人员遵循最佳实践、提高代码质量、增强可读性、降低维护成本。 需要注意的是&a…...

设计模式 07 桥接模式

桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型模式 概述 桥接模式是将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。它是一种对象结构型模式&#xff0c;又称为柄体&#xff08;Handle and Body&#xff09;模式或接口&#xff08;Interface&…...

linux系统(centos、ubuntu、银河麒麟服务、uos、deepin)判断程序是否已安装,通用判断方法:使用所有应用和命令的判断

前言 项目中需要判断linux服务器中是否已经安装了某个服务 方法有很多种&#xff0c;但是很多都不通用&#xff0c; 脚本代码就不容易做成统一的 解决方案 用下面的脚本代码去进行判断 用jdk测试 脚本意思如下&#xff1a; 输入java -version命令&#xff0c;将返回的字…...

机器学习各算法优缺点汇总

链接: (链接: link)...

手把手教你部署Jenkins教程,小白也能学会(多图预警)!

背景 公司的前端、后端构建及部署工作都是人工去做&#xff0c;随着业务扩大&#xff0c;项目迭代速度变快&#xff0c;人员增多&#xff0c;各种问题都暴露出来&#xff0c;将通过一个简单案例分享一下基于Jenkins的前后端自动化工作流搭建的过程&#xff0c;搭建完这套工作流…...

一种IDEA疑难杂症的解决办法

解决办法 重启IDEA 针对于IDEA各种羡慕解析&#xff0c;运行时问题&#xff0c;但是无法通过搜索引擎得到答案的问题请试试此方法。 删除根目录下[.idea]文件夹后重启 此文件夹为idea首次导入项目时根据项目情况自动生成的配置文件。方便idea下次更快的解析项目。但是某些情…...

TikTok小店玩法有哪些?一起来玩转TiKTok!

随着TikTok在海外市场份额不断增加&#xff0c;越来越多卖家选择入驻TikTok跨境小店&#xff0c;但是在入驻之后我们需要知道有哪些主流玩法&#xff0c;才能根据实际情况制定合适的运营方案。接下来小编就给大家介绍一下TikTok小店玩法有哪些&#xff01; 本土模式 这种模式…...

Mongodb 集合插入文档自动生成ObjectId

插入单个文档 Mongodb 使用以下几种方法来插入文档 &#xff0c; Mongodb V5.0 使用 mongosh 客户端&#xff1a; 插入单个文档 db.collection.insertOne() 将单个 文档插入到集合中。 如果该集合当前不存在&#xff0c;则插入操作将创建该集合。 如果文档未指定_id字段&am…...

C# .aspx网页获取RFID读卡器HTTP协议提交的访问文件Request获得卡号、机号,Response回应驱动读卡器显示响声

本示例使用的设备&#xff1a;RFID网络WIFI无线TCP/UDP/HTTP可编程二次开发读卡器POE供电语音-淘宝网 (taobao.com) 服务端代码&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.…...

Kali Linux 2023.3 发布

Offective Security 发布了 Kali Linux 2023.3&#xff0c;这是其渗透测试和数字取证平台的最新版本。 Kali Linux 2023.3 中的新工具 除了对当前工具的更新之外&#xff0c;新版本的 Kali 通常还会引入新的工具。 这次&#xff0c;他们是&#xff1a; Calico – 云原生网络…...

如何用Python实现从pdf文件精准抓取数据生成数据库!

要从PDF文件中提取数据并生成数据库&#xff0c;你可以使用Python中的一些库和工具来实现。 1、安装必要的库&#xff1a;确保已安装所需的库。除了之前提到的PyPDF2、pdfminer.six和pdftotext之外&#xff0c;你可能还需要其他的库来处理提取的数据和数据库操作。例如&#x…...

科技资讯|苹果Apple Watch新专利,可根据服装、表带更换表盘颜色

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果公司近日获得了一项 Apple Watch 相关的技术专利&#xff0c;最大的亮点在于配备颜色采样传感器&#xff0c;可以根据表带、服装自动变幻变盘颜色和主题。 Apple Watch 正面配备颜色采样传感器&am…...

猜数游戏-Rust版

cargo new guessing_game 创建项目 输入任意内容&#xff0c;并打印出来 main.rs: use std::io; // 像String这些类型都在预先导入的prelude里&#xff0c;如果要使用的不在prelude里&#xff0c;则需要显式导入fn main() { println!("猜数"); println!("…...

从零起步:学习数据结构的完整路径

文章目录 1. 基础概念和前置知识2. 线性数据结构3. 栈和队列4. 树结构5. 图结构6. 散列表和哈希表7. 高级数据结构8. 复杂性分析和算法设计9. 实践和项目10. 继续学习和深入11. 学习资源12. 练习和实践 &#x1f389;欢迎来到数据结构学习专栏~从零起步&#xff1a;学习数据结构…...

如何在浏览器中启用 WebGL 以使用 HTML5 3D 查看器

描述 WebCenter 中的 HTML5 3D Collada Viewer&#xff08;自 14.1 以来新增&#xff09;要求在浏览器中启用 WebGL。较旧的浏览器可能不支持此功能&#xff0c;或者要求用户首先显式启用此功能。本页介绍如何为所有主要浏览器启用此功能。WebGL 3D 查看器 本文是以下超级用户…...

【计算机协议】第一章——HTTP协议详解

前言 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;即超文本传输协议&#xff0c;是一种用于传输超媒体文档&#xff08;例如HTML&#xff09;的应用层协议。HTTP协议采用C/S&#xff08;客户端/服务器&#xff09;模式&#xff0c;客户端发起请求&#xff0c;服务…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析

目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork&#xff08;创建个人副本&#xff09;步骤 2: Clone&#xff08;克隆…...

Android屏幕刷新率与FPS(Frames Per Second) 120hz

Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数&#xff0c;单位是赫兹&#xff08;Hz&#xff09;。 60Hz 屏幕&#xff1a;每秒刷新 60 次&#xff0c;每次刷新间隔约 16.67ms 90Hz 屏幕&#xff1a;每秒刷新 90 次&#xff0c;…...