BearPi Std 板从入门到放弃 - 先天篇(1)(阶段 : 智慧城市 - 智慧路灯)

简介

对前面几篇整合, 做个小小汇总试验, 使用BearPi E53_SC1扩展板主芯片: STM32L431RCT6串口: Usart1扩展板与主板连接: I2C : I2C1 (光照强度传感器:BH1750)LED: PB9

步骤

  1. 创建项目
    参考 BearPi Std 板从入门到放弃 - 引气入体篇(1)(由零创建工程到点亮LED)

  2. 初始化Usart1
    参考 BearPi Std 板从入门到放弃 - 引气入体篇(4)(Usart 中断接收), 但不需要启用中断, 直接添加fputc函数可以使用printf打印信息到串口即可, 参考 BearPi Std 板从入门到放弃 - 引气入体篇(5)(printf打印到串口)

  3. I2C1 初始化
    参考 BearPi Std 板从入门到放弃 - 后天篇(1)(I2C1 读取 光照强度)

  4. 初始化 LED灯 PB8
    方法如 步骤1, 推挽输出、不上拉下拉、标签名为E53_SC1_LED即可, 其电路原理图如下, LED_SW为输入, D1为LED灯
    在这里插入图片描述

  5. 最终创建项目
    STM32CubeMX勾选项目生成为按照功能的不同.c/.h, 参考 STM32CubeMX 一些配置

  6. 添加用户代码
    main.c

typedef enum
{OFF,ON
}Smart_City_Status;	#define LUMINOSITY_THRESHOLD 50 // 光照阈值, 小于此亮度则亮灯void BH1750Init(void)
{uint8_t temp = 0x11; // 连续 H分辨率模式2HAL_I2C_Master_Transmit(&hi2c1, BH1750_ADDRESS, &temp, 1, 0xff); HAL_Delay(180); // 数据手册内部写完最长等待180ms才能读
}float ReadBH1750(void)
{float lux = 0.0;uint8_t temp[2];HAL_I2C_Master_Receive(&hi2c1, BH1750_READ, temp, 2, 0xff); lux = (float) ( ((temp[0]<<8) + temp[1]) / 1.2 );return lux;
}void Smart_City_Light_Set(Smart_City_Status status)
{if (ON == status){HAL_GPIO_WritePin(E53_SC1_LED_GPIO_Port, E53_SC1_LED_Pin, GPIO_PIN_SET);}else{HAL_GPIO_WritePin(E53_SC1_LED_GPIO_Port, E53_SC1_LED_Pin, GPIO_PIN_RESET);}
}int main(void )
{float lux = 0.0;...BH1750Init(); // BH1750 初始化while (1){HAL_Delay(1000); // 1s 延时lux = ReadBH1750(); // 读取光照强度值Smart_City_Light_Set(lux <= LUMINOSITY_THRESHOLD ? ON : OFF); // Smart_City_Light_Set(lux >= LUMINOSITY_THRESHOLD); printf("current Lux: %f\r\n", lux);}...
}

usart.h

/* USER CODE BEGIN Header */
#include "stdio.h"
/* USER CODE END Header *//* USER CODE BEGIN 0 */int fputc(int ch, FILE *f)
{uint8_t temp[1] = {ch};HAL_UART_Transmit(&huart1, temp, 1, 2);return HAL_OK;
}/* USER CODE END 0 */

前言后讲

BH1750介绍
1.BH1750 测量步骤
在这里插入图片描述
如图所示
(1) 在电路连接正常情况下, 可以直接发送测量指令
(2) 一次测量方式后会自动断电
(3) 连续测试则需要下发指令进行断电

2.BH1750 指令
在这里插入图片描述

3.BH1750 测量模式说明
在这里插入图片描述

4.BH1750 各种测量时序示例
(1)ADDR 为低电平示例(包含计算)
在这里插入图片描述

(2)ADDR 为高电平示例(包含计算)
在这里插入图片描述
5. 本次扩展板BH1750电路图
在这里插入图片描述
综上:
1. ADDR 是 低电平
2. 写完读模式之后最大等待时间是180ms, 写完或读前需要延时180ms
3. 连续读模式 除非写断电, 否则会进行一次采集…
4. 亮度计算公式 = (((高8位)<<8) + (低八位))/1.2

Note:
Keil中Download Flash完需要复位才能执行最新的程序, 参考 BearPi Std 板从入门到放弃 - 丹道心得 (问题收集),烧写完直接复位即可

BearPi_Smart_City 完整工程代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/210624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈Google Play ASO 优化

什么是ASO ASO即APP Store Optimization&#xff0c;是用于提高APP在应用市场排名的工具&#xff0c;其实也就是移动产品的SEO工作。 ASO是为了提高该产品的搜索结果成绩&#xff0c;提升APP的下载量&#xff0c;针对Google Play来说&#xff0c;ASO就是优化APP页面。 为什么…

Linux升级nginx版本

处于漏洞修复目的服务器所用nginx是1.16.0版本扫出来存在安全隐患&#xff0c;需要我们升级到1.17.7以上。 一般nginx默认在 /usr/local/ 目录&#xff0c;这里我的nginx是自定义的路径安装在 /app/weblogic/nginx 。 1.查看生产环境nginx版本 cd /app/weblogic/nginx/sbin/…

Redis基础入门

第1章&#xff1a;引言 大家好&#xff01;我是小黑&#xff0c;今天咱们来聊聊Redis。Redis&#xff0c;这个名字你可能在不少地方听过&#xff0c;尤其是在后端开发领域&#xff0c;它可是个大名鼎鼎的角色。&#xff0c;Redis是一个开源的内存中数据结构存储系统&#xff0…

放弃原生SQL:Python中更优雅的数据库操作

概要 在Python中&#xff0c;通过原生SQL语句进行数据库操作是一种传统的方式&#xff0c;但现代的Python开发中&#xff0c;使用ORM&#xff08;Object-Relational Mapping&#xff09;工具和数据库连接库可以更加高效和优雅地进行增删改查操作。本文将详细介绍Python中放弃原…

解决IDEA中多个项目不在同一窗口下显示的问题和添加新的git的URL

以上是添加显示多个项目 以下是给新添加的项目添加git

LeetCode算法题解(单调栈)|LeetCode84. 柱状图中最大的矩形

一、LeetCode84. 柱状图中最大的矩形 题目链接&#xff1a;84. 柱状图中最大的矩形 题目描述&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大…

做外贸很多时候还是要学会随机应变

马上又要到年底了&#xff0c;相信已经有一部分小伙伴开启了催单模式&#xff0c;希望客户尽量在春节前将订单落实下来&#xff0c;自然也有很多客户会在春节前的这一段时间开始陆续拜访自己观望了很久的工厂。 其实对于贸易公司来说&#xff0c;对于来看工厂的客户&#xff0…

ChatGPT,作为一种强大的自然语言处理模型,具备显著优势,能够帮助您在各个领域取得突破

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

Kotlin:内置函数let、also、with、run、apply

前言 在Kotlin中&#xff0c;有一些用于扩展 & 方便开发者编码的内置函数&#xff0c;能大大提高开发者的开发效率。今天&#xff0c;我将主要讲解的是&#xff1a; let函数also函数with函数run函数apply函数 基础知识&#xff1a;接口回调中Lambda使用 在Kotlin中可使用…

栈和队列的互相实现

用队列实现栈 OJ链接 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。int pop() 移除并返…

Mybatis XML增删操作(结合上文)

先来"增"操作 在UserInfoXMLMapper.xml里面写 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <…

nginx多端口部署

1.配置nginx.conf文件 有几个端口需要部署就写几个server&#xff0c;我这里只部署了两个端口分别为80和81端口&#xff0c;所以有两个server文件。80端口项目入口在根目录的test文件中&#xff0c;81端口项目入口在根目录的test1文件夹中。 2.准备项目文件html文件 在/test1…

Dockerfile部署Java项目挂载使用外部配置文件

Dockerfile部署Java项目挂载使用外部配置文件 技术博客 http://idea.coderyj.com/ 需求是由于java项目使用的是nacos 而且每次部署nacos服务器ip不一样导致要重新打包,想引入外部配置文件进行打包 1.需求是由于java项目使用的是nacos 而且每次部署nacos服务器ip不一样导致要重新…

【论文阅读笔记】序列数据的数据增强方法综述

【论文阅读笔记】序列数据的数据增强方法综述 摘要 这篇论文探讨了在深度学习模型中由于对精度的要求不断提高导致模型框架结构变得更加复杂和深层的趋势。随着模型参数量的增加&#xff0c;训练模型需要更多的数据&#xff0c;但人工标注数据的成本高昂&#xff0c;且由于客观…

将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制

将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制 2023/12/9 22:07 应该也可以适用于RK3399的Android12系统 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml -2…

MagicAnimate

简介 新加坡国立大学 Show 实验室和字节联合做了一项类似的研究。他们提出了一个基于扩散的框架 MagicAnimate&#xff0c;旨在增强时间一致性、忠实地保留参考图像并提升动画保真度。并且&#xff0c;MagicAnimate 项目是开源的&#xff0c;目前推理代码和 gradio 在线 demo …

外包干了三年,我承认我确实废了……

没错&#xff0c;我也干过外包&#xff0c;一干就是三年&#xff0c;三年后&#xff0c;我废了…… 虽说废的不是很彻底&#xff0c;但那三年我几乎是出差了三年、玩了三年、荒废了三年&#xff0c;那三年&#xff0c;我的技术能力几乎是零成长的。 说起这段三年的外包经历&a…

Ubuntu中编译出Windows的可执行程序(.exe)

1、前言 在嵌入式开发中&#xff0c;交叉编译是很常见的情况&#xff0c;如果你把Windows电脑也看做一块高性能的开发板&#xff0c;那在Ubuntu中编译出Windows上运行的可执行程序也是很好理解的行为。 2、安装mingw64环境 sudo apt-get install mingw-w64 3、测试编译链是否安…

打破常规思维:Scrapy处理豆瓣视频下载的方式

概述 Scrapy是一个强大的Python爬虫框架&#xff0c;它可以帮助我们快速地开发和部署各种类型的爬虫项目。Scrapy提供了许多方便的功能&#xff0c;例如请求调度、数据提取、数据存储、中间件、管道、信号等&#xff0c;让我们可以专注于业务逻辑&#xff0c;而不用担心底层的…

Vue2与Vue3的语法对比

Vue2与Vue3的语法对比 Vue.js是一款流行的JavaScript框架&#xff0c;通过它可以更加轻松地构建Web用户界面。随着Vue.js的不断发展&#xff0c;Vue2的语法已经在很多应用中得到了广泛应用。而Vue3于2020年正式发布&#xff0c;带来了许多新的特性和改进&#xff0c;同时也带来…