SwiftUI Bluetooth之macOS显示和搜索蓝牙设备

看完后您将能够制作下面的界面

Jietu20200613-111105@2x.jpg

实战需求

通过之前文章我们掌握SwiftUI构建蓝牙App的方法,那么macOS 平台该如何开发呢?

解决方案

SwiftUI 当初的设计理念就是 Write Once Run Anywhere,让我们来体验一下吧

下面iOS代码


import SwiftUI
import CoreBluetooth

class MyBluetooth:NSObject,CBCentralManagerDelegate,ObservableObject {
    @Published var myState = ""
    @Published var devices:[String] = []
    var centralManager: CBCentralManager!
    func start() {
        //self.centralManager = CBCentralManagerDelegate(delegate:self,queue:nil)
        centralManager = CBCentralManager(delegate: self, queue: nil)

    }
    func centralManagerDidUpdateState(_ central: CBCentralManager) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
05-29
好的,如果您想要在STM32上实现蓝牙通信的话,您可以使用STM32提供的内置蓝牙模块,或者使用外部蓝牙模块(例如HC-05、HC-06等),并通过UART串口与STM32进行通信。 以下是一个使用STM32内置蓝牙模块(例如STM32WB55)进行蓝牙通信的示例代码: ```c #include "stm32wbxx.h" #include "stm32wbxx_hal.h" #define UART_TX_PIN GPIO_PIN_9 #define UART_RX_PIN GPIO_PIN_10 UART_HandleTypeDef huart1; void UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 9600; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = UART_TX_PIN|UART_RX_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (huart->Instance == USART1) { // 处理接收到的蓝牙数据 } } int main(void) { HAL_Init(); UART_Init(); while (1) { // 发送蓝牙数据 uint8_t data[] = {0x01, 0x02, 0x03}; HAL_UART_Transmit(&huart1, data, sizeof(data), 1000); // 等待接收蓝牙数据 HAL_UART_Receive_IT(&huart1, data, sizeof(data)); HAL_Delay(100); } } ``` 以上代码中,我们使用了STM32的UART串口与蓝牙模块进行通信,通过HAL_UART_Transmit()函数将数据发送到蓝牙模块,通过HAL_UART_Receive_IT()函数开启中断接收来自蓝牙模块的数据。 当然,具体的代码实现还需要根据您使用的蓝牙模块进行相应的调整。希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识大胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值