草庐IT

ESP32-CAM

全部标签

STM32外设芯片驱动学习记录 —— (一) BH1750光照传感器驱动开发

目录一、芯片介绍二、Datasheet解读1.硬件说明2.寄存器说明3.通信过程三、驱动代码编写1.软件I2C驱动2.BH1750芯片驱动函数总结  一、芯片介绍    BH1750是16位数字输出型,环境光强度传感器集成电路,使用I2C接口通信,工作电压:VCC(2.4~3.6V),I2C电平(1.65~VCC),用于各类消费类LCD屏背光检测或环境光检测。二、Datasheet解读1.硬件说明1)框图PD:光电二极管,接受光信号AMP:放大器,将电流信号转化为电压信号ADC:16位AD转换Logic+I2CInterface:环境光计算与I2C接口OSC:内部时钟2)引脚说明引脚号名称说明

STM32F103的DAC——实现音频输出

文章目录一、DAC1、DAC简介2、DAC功能框图剖析二、使用DAC输出周期2kHz的正弦波三、使用DAC将数字音频歌曲数据转换为模拟音频波形输出四、小结五、参考链接一、DAC1、DAC简介DAC为数字/模拟转换模块,顾名思义,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与ADC相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而ADC把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由DAC输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。STM32具有片上DAC外设,它的

STM32自学历程——USART传输(串口发送实验)

实验现象成功在电脑串口助手上显示中文“你好,世界”代码分析打开时钟开启USART1的时钟,USART1的时钟在APB2上,其余USART时钟均在APB1上.开启GPIOA的时钟。   RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);配置引脚   GPIO_InitTypeDefGPIO_InitStructure;   GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;   GPIO_In

c++ - 如何使 Win32/MFC 线程同步循环?

我是Windows中多线程的新手,所以这可能是一个微不足道的问题:确保线程同步执行循环的最简单方法是什么?我尝试将Event的共享数组传递给所有线程,并在循环结束时使用WaitForMultipleObjects来同步它们,但这让我在一个线程后出现死锁,有时是两个,周期。这是我当前代码的简化版本(只有两个线程,但我想让它具有可扩展性):typedefstruct{intrank;HANDLE*step_events;}IterationParams;intmain(intargc,char**argv){//...IterationParamsp[2];HANDLEstep_event

测试、获取单片机STM32系统时钟值方法

   有时候,做一个项目出了问题,第一个要怀疑的是系统时钟,本篇是说明如何监控项目的系统频率的。   在STM32标准库项目中,可以通过以下步骤来获取系统时钟:打开项目的主文件(通常为main.c或stm32fxxx_it.c)。在文件顶部,找到包含STM32的头文件,例如"stm32fxxx.h"。在头文件中搜索或浏览器寻找定义系统时钟的宏。这个宏通常以"SYSCLK"、"SYSCLK_FREQ"或类似的名称出现。确定宏的值。通常,这个值表示系统时钟的频率,以Hz为单位。以下是一个示例,展示了如何通过宏获取系统时钟频率:#include"stm32f10x.h"uint32_tsysCloc

c++ - 在 C++ WIN32 中识别后台进程并将其置于前台

谁能告诉我如何识别特定的后台进程(即,已经在运行的应用程序)并将其带到前台?例如,如果一个记事本应用程序在后台运行,当我运行我的WIN32应用程序时,它应该识别记事本应用程序并且记事本应该弹出或进入前台。我尝试了SwitchToThisWindow()函数,但它的工作方式类似于Alt+tab。它不会识别后台进程。请给我建议这方面的演练指南..谢谢你.. 最佳答案 不清楚您所说的“后台进程”是什么意思,但这里有一些想法:使用EnumWindows为您提供桌面上的所有顶级HWND。这将包括一堆你不想要的东西,你必须过滤掉。建议您使用Sp

c++ - 为什么 MS 在其 win32api 中没有返回字体文件名的函数,给定字体句柄?

在使用WindowsAPI多年的经验中,这是我第一次遇到我需要做某事的情况,而我不能使用Windows当前的编程接口(interface)。根据我的研究,字体“ArialBlack”使用文件arialblk.ttf并且字体“ArialBlackItalic”没有文件,字体“ArialBlack”也没有粗体”,至少在我装有Windows7的计算机中是这样。我在下面插入了一个程序来显示几行使用字体“ArialBlack”的文本,单独使用,然后使用斜体和粗体显示。令我惊讶的是,斜体文本呈现正常,而粗体文本呈现为好像只是“ArialBlack”。然后我意识到同样的事情发生在MSWord上。我还

c++ - unsigned long 的类型不同于 Windows 上的 uint32_t 和 uint64_t (VS2010)

在Windows7、32位的VisualStudio2010上,unsignedlong似乎是与uint32_t和uint64_t截然不同的类型。看下面的测试程序:#include#includetemplatestructis_same_type{staticconstboolvalue=false;};templatestructis_same_type{staticconstboolvalue=true;};#defineTO_STRING(arg)TO_STRING_IMPL(arg)#defineTO_STRING_IMPL(arg)#arg#definePRINT_SAME

c++ - Win32 中是否有检测用户何时更改区域设置的消息或通知?

编辑:为了响应社区的评论,问题被减少和优化。问题的删除部分将作为单独的问题发布。问题:在Win32API中是否有任何WM_SOMETHING或NM_SOMETHING消息可以通知我有关用户更改locale?你看,我可以使用该消息/通知将我程序的locale更改为当前locale.像这样的伪代码:caseWM_SOMETHING://inmymainwindowprocedure_wsetlocale(LC_ALL,L"");此外,如果有这样的消息,并且我按照上面的伪代码处理它,它会调整仅主窗口的locale还是还为子对话框和控件设置locale?。我为解决这个问题所做的努力:通过互联网

esp8266+新版onenet平台之HTTP设备属性上报

一、注册账户新版onenet平台https://open.iot.10086.cn/作为onenet新用户,需要先进行账号注册登录二、创建产品进入开发者中心->产品开发->创建产品产品品类无要求,智能化化选择设备接入,节点类型为直连设备,协议为HTTP进入对应的产品开发设置物模型,添加自定义功能点三、创建设备在产品开发下对对应产品进行项目管理,添加设备设备名称为设备ID(新版统一设备名称和ID)位置信息可以不选择找到esp8266设备->属性,即可看到产品下的设备自动添加了功能点四、esp8266设备属性上报工具:Postman、token生成工具/代码、开发文档新版onenet平台提供了两种