昨天我们使用了multi_timer +状态机来读取光强度。这篇文章的链接如下:基于熊光强度传感器BH1750(multi_timer +状态机工程应用)的实践,今天我们采取了进一步的措施,并将其发送给OLED与OLED结合!所谓所见即所得,这是发展的最大乐趣。
在实施此小项目之前,首先让我们了解Bear Pie开发板上的此屏幕。让我们看一下原理图的连接方式:如上图所示。
根据数据手册解释LCD控制方法:LCD_SPI_MOSI,LCD_SPI_CLK这两个引脚用于建立SPI通信协议。传统的SPI具有SPI_MOSI(主设备输出从设备输入),SPI_MISO(主设备输入从设备输出),SPI_SCK(SPI时钟线),那么为什么这里没有SPI_MISO?这是因为只需要显示它,因此在设计模块时,从机器发送到主机的数据线是隐藏的。
您可以参阅数据表第66页的相关说明。由于篇幅所限,将不会在此处发布。
。原理图引脚使用情况分析LCD_WR_RS是芯片的命令/数据控制引脚:根据数据手册,当LCD_WR_RS引脚为低电平时,它是写命令状态;当LCD_WR_RS引脚为高电平时,它是数据写状态。
LCD_RESET是LCD的复位引脚。当模块加电时,它被拉低。
通常,该位需要设置为1。LCD_POWER是LCD的电源引脚。
通常,可以将其直接拉高以使其点亮并正常工作。还有一个非常重要的功能,即LCD的芯片选择功能。
芯片选择已在原理图中直接下拉,因此可以使能芯片。关于通信协议对于SPI通信,数据具有传输时序,即时钟相位(CPHA)和时钟极性(CPOL)的组合:CPHA的级别确定串行同步时钟是在第一个时钟转换沿还是在第一个时钟转换沿。
第一次时钟转换。在两个时钟转换沿收集数据。
当CPHL = 0时,在第一个过渡沿执行数据收集;否则,在第一个过渡沿执行数据收集。 CPOL的电平确定串行同步时钟的空闲状态电平,并且CPOL = 0(低)。
从图中可以看出,当SCLK的第一个下降沿开始发送数据时,使用SPI0在一个时钟周期内发送8位数据,即按位传输,高位在先,低位在后。项目实战在上一节中,我们没有使用扩展板的LED灯。
在本节中,我们将配置光源(LED_SW)并将其从原始开发板上移除。该指示灯位于开发板的PB9端口上。
我们将在上一个项目的基础上添加与SPI相关的配置并直接实现它。在上一部分中打开项目:1.修改LED_SW灯的配置2.配置SPI2 3.配置LCD_WR_RS,LCD_RESET,LCD_POWER 4.生成项目,然后移植熊派LCD的示例包括LCD驱动程序源代码。
将LCD相关文件添加到Keil项目中并进行编译后,发现存在错误:LIGHT_SENSOR_I2CLIGHT_SENSOR_I2C.axf:错误:L6218E:未定义的符号SPI2_WriteByte(从lcd.o引用)。在lcd中的含义程序文件中未定义SPI2_WriteByte接口。
找到错误的地方,添加这样的功能,然后编译以解决问题。 & nbsp;& nbsp;& nbsp;接下来,在main.c中添加头文件:/ *私有包含--------------------------- -------- ----------------------- * // *用户代码开始包括* /#include“ lcd.h” #include“ HzLib.h” / *用户代码结束包括* /接下来,添加LCD显示逻辑:/ ** * @brief应用程序入口点。
* @retval int * / int main(void){/ *用户代码开始1 * / char display_buf [20] = {0}; / *用户代码结尾1 * / / * MCU配置--------------- ----------- ------------------ * / / *重置所有外围设备,初始化Flash接口和Systick。 * / HAL_Init(); / *用户代码开始Init * / / *用户代码结束Init * / / *配置系统时钟* / SystemClock_Config(); / *用户代码开始SysInit * / / *用户代码结束SysInit * / / *初始化所有已配置的外围设备* / MX_GPIO_Init(); MX_I2C1_Init(); MX_USART1_UART_Init(); MX_SPI2_Init(); / *用户代码开始2 * / / *在串行端口初始化之后添加此延迟,以防止后续的printf打印乱码* / HAL_Delay(200); LCD_Init(); LCD_Clea r(BLACK); //将屏幕清除为黑色LCD_ShowString(5,10,240,32,32,“ BearPi LuxTest”); //显示字符串,字体大小32 * 32 printf(“光强度读取测试实验
”); Init_BH750(); timer_init(& amp; lsensor.timer1,lsensor.timeout_cb,1,1); ti
公司: 深圳市捷比信实业有限公司
电话: 0755-29796190
邮箱: momo@jepsun.com
产品经理: 李经理
QQ: 2215069954
地址: 深圳市宝安区翻身路富源大厦1栋7楼

更多资讯
获取最新公司新闻和行业资料。
- 万用表测电阻显示0.L的原因解析 当使用万用表测量电阻时,如果显示屏上出现“0.L”的读数,这通常意味着被测电阻值小于万用表能够准确显示的最小值。具体来说,“0.L”中的“L”代表低(Low)的意思,表示电阻值过低以至于超出了当前量程设置下的分辨率...
- 1安铅保险丝直径约0.5至0.8毫米 铅保险丝的直径与所需通过的最大电流有关。一般来说,用于1安培电流的铅保险丝直径大约在0.5毫米到0.8毫米之间,但具体尺寸还需参照实际产品的规格表或制造商提供的数据。因为不同制造商可能有略微不同的设计标准和材料...
- 贴片电阻的精密度有0.1%的吗 其实,对于不是搞计量的不需要分的那么清楚,可以大体上认为高精密、高准确、低误差等是一个意思。但是,对于“精度”一词,可以分解成分解成三个要素: 1 、温度系数:温度变化是电阻的大敌,温度系数一般用ppm...
- PT100热电阻温度与电阻值对照表(0°C基准0.385) 根据PT100热电阻的标准特性,其电阻值随温度变化而变化,通常基于0°C时电阻为100Ω作为参考。对于给定的温度系数α=0.385Ω/°C(这指的是每度变化的电阻增量),我们可以构建一个简化版的对照表来展示特定温度下对应的电阻值...
- 电阻精密度1%能代0.1%吗? 不能!其实,对于不是搞计量的不需要分的那么清楚,可以大体上认为高精密、高准确、低误差等是一个意思。但是,对于“精度”一词,可以分解成分解成三个要素: 1 、温度系数:温度变化是电阻的大敌,温度系数一...
- 铜的电阻温度系数约为0.004/°C 铜是一种常用的导电材料,因其良好的导电性能和相对较低的成本,在电气工程中被广泛应用。铜的电阻温度系数(temperature coefficient of resistance),是指在特定温度范围内,温度每变化1度时,其电阻值相对于基准温度(通常是2...
- 霍尼韦尔行程开关SZL-WL-B:工业自动化中的高效解决方案 霍尼韦尔行程开关SZL-WL-B是一款高性能的设备,专为满足各种工业应用的需求而设计。该行程开关具备出色的可靠性和耐用性,能够在严苛的工作环境中保持稳定的性能表现。它采用先进的技术制造而成,确保了高精度的位置检测...
- 显示器启动电容 铝电解电容出了故障——这就是问题所在。这是一个坏消息。但好消息是,当铝电解电容发生故障时,很容易发现。电脑显示器使用的AC主电源适配器出现问题就是这种情况。几个星期前,我太太的电脑显示器开始间歇性地出现状...
- 基于光敏电阻的项目 光敏电阻一直是许多爱好者的方便设备。许多基于光敏电阻的新研究论文和电子项目可用。光敏电阻在医学、嵌入式和天文领域有了新的应用。使用光敏电阻设计的一些项目如下-基于光敏电阻的学生自制光度计及其在染料法医分...
- 电阻值为0说明电路处于短路状态 当电阻值测量结果为0时,这通常意味着在所测试的两点之间存在低阻抗路径,即电路处于短路状态。在正常情况下,电阻值为0表明这两点之间的连接几乎不存在任何阻碍电流通过的因素。这种情况可能发生在导线直接接触、电源...
- 触控屏幕控制器的工作原理与应用领域 在现代科技中,触控屏幕控制器扮演着至关重要的角色,它不仅改变了我们与电子设备交互的方式,还广泛应用于各个领域。触控屏幕控制器是一种硬件设备,能够识别屏幕上的触摸动作,并将这些动作转化为计算机可以理解的...
- 万用表测电阻显示为0的可能原因及解决方法 当使用万用表测量电阻时,如果显示屏上显示为0,这通常意味着存在以下几种情况之一:1. 短路:被测电阻器内部或其连接线路可能存在短路。这意味着电阻值非常低,接近于零。2. 万用表设置错误:检查万用表是否正确设置在...
- 数字万用表测量电容显示0的原因及解决方法 当使用数字万用表测量电容时,如果显示屏上显示0,可能的原因有以下几种:1. 电容已损坏:如果电容内部发生短路或开路故障,万用表将无法正确测量其电容值。2. 测量范围选择不当:数字万用表通常有多个电容测量范围,如...
- 万用表电阻档始终显示0的可能原因与解决方法 当万用表的电阻档位始终显示0时,这通常表明电路中存在短路情况,或是万用表自身存在问题。首先,请确保被测电路已断电,并且万用表处于正确的电阻测量模式。接着,检查待测电阻两端是否直接短接,即是否存在一条几乎...
- 为什么在零状态条件下,电容在t=0+时可视为短路? 在电路分析中,特别是在讨论暂态响应时,我们会遇到零状态条件下的电容。所谓零状态,是指初始时刻电容两端的电压为零。当考虑电路在施加输入信号的瞬间(即t=0+时),电容由于其存储电荷的能力,在这一时刻可以被视为...
- 关于电容补偿柜功率因数显示为负0.99的问题分析 在电力系统中,电容补偿柜的主要功能是提高系统的功率因数,从而减少能量损失和提高供电效率。当提到电容补偿柜的功率因数显示为-0.99时,这通常意味着系统可能存在异常情况。正常情况下,电容补偿柜应该使功率因数接近...
- 万用表测电容显示0的原因及正确测量方法 使用万用表测量电容器时,如果显示为0,这通常意味着电容器可能存在短路问题。当电容器内部的绝缘介质受损或失效时,它就无法正常存储电荷,导致万用表检测到的阻抗为零或者非常低,从而显示出0值。此外,如果万用表设...
- 数字万用表测量电阻时显示0的可能原因与解决方法 当使用数字万用表测量电阻时,如果显示屏上出现“0”,这通常意味着万用表检测到了一个非常低的电阻值或者短路。以下是几种可能的原因及相应的解决方法:1. 测试对象实际具有非常低的电阻:如果被测物体本身就是一个低...
- 输出级周边驱动器在音频系统中的应用 输出级周边驱动器是音频系统中非常关键的组件之一,它们的作用在于优化和管理信号从调音台到最终扬声器播放的整个过程。这类设备包括了多种类型,如均衡器、压缩器、限幅器、效果处理器等,每种设备都有其独特的功能...
- 原装欧龙行程开关Z-15GD55-B:精准控制与稳定性能 原装的欧龙行程开关Z-15GD55-B是一款高质量、耐用的产品,被广泛应用于各种工业自动化设备中。该行程开关具有精准的动作位置控制和稳定的性能表现,能够在各种恶劣环境下保持良好的工作状态。其设计紧凑,安装简便,不仅...