-
在项目中新建一个文件夹,并在文件夹中新建了.h文件。编译出现了如下错误。原因是,没有将新建文件夹包含到编译路径中。项目右键--properties----C/C++General------PathsandSymbols--------Includes----------Add------------WorkSpaces--------------选择自己在项目...[详细]
-
在STM32L0中操作EEPROM本来参考了上篇操作FLASH的方法,多多少少都有些问题。我觉得可能是结构体在转换成其他变量的时候出了问题。比如下面这段代码,在Windows上可以正常运行(使用g++编译),但是在单片机上就会卡死。typedefstruct{uint8_tIDD;uint8_tzero;uint8_tdutyCorr;}usrfl...[详细]
-
在写单片机程序时我们一般喜欢使用printf来通过串口打印调试信息,但这个函数是不可以直接使用的,必须做点对库函数的改动。STM32MCUBE是ST官方提供的库以及初始化工具,很好很强大,但是在UART方面值提供了如下函数:HAL_StatusTypeDefHAL_UART_Transmit(UART_HandleTypeDef*huart,uint8_t*pData,uint16...[详细]
-
一.双Bank机制STM32G系列的Flash支持Singlebankmode和Dualbankmode,Singlebankmode即常规的Flash模式,Dualbankmode会将Flash分为两块,正常情况下系统复位时会从Bank1启动,0x08000000对应为Bootloader复位向量,首先运行的代码为Bootloader。Bootloader跳转APP时...[详细]
-
今天在使用stm32f407的HAL库发现一个BUG。当时我中断使用多了、把所有time定时器使用了4个外部中断、不管怎么调整nvic不管用。这个时候HAL串口接收功能已经崩溃、已经无法正确接受数据、串口发送也会卡死。这个网上可以查到这个BUG是由于hal库运行速度缓慢导致的、目前没有很好的办法解决。这个时候我果断转了ll库、瞬间解决再也没有这些问题了。稳。当然这个bugF不管103...[详细]
-
具体实现功能(1)使用2个LED灯模拟路灯,设定节能时间段为晚上00:00到早上6:00,路灯只亮一个。若声音传感器检测到有声响或人体红外感应传感器检测到外界有行人或汽车经过,则另一个灯也开启,延迟10s后重新变为一亮一灭的状态;(2)可以设置路灯开启时间段。如设置19:00-20:00,在此时段中,2个LED灯一直亮。其他除节能模式之外的时间段,则需根据光强和声响或人体红外感应来打开路灯...[详细]
-
//项目名称:4只按键分组控制LED//项目再创作者:科技小宅神//完成时间:2021/01/21//功能说明:每次按下K1逐次点亮LED,全亮时再次按下则循环开始//K2按下,点亮上4只LED,K3按下,点亮下4只LED,K4按下关闭所有LEDproteus仿真图#includereg52.h#defineucharunsignedchar#defineuin...[详细]
-
自主学习STM32已有一周,先实现一个小demo,算是给自己一个动力叭,有目标的学习收获会更多。虽然本科也修了嵌入式课程,但那种走马观花式的学习,最后真正得到的知识实在寥寥无几。个人理解,学习STM32不只是学习编程,更多的是学习查资料、查数据手册、软件的使用和调试方法上,真正需要自己从头造的部分不是很多,吸取前人的经验,搬过来取自己所需即可。用农夫山泉的话来说就是,我们不生产代码,我们只是代码...[详细]
-
创建工程模板的好处是,在开发新项目时能够快速进行,而不用重新配置。其实,通过keil的工程创建向导也可以快速创建项目工程,但是生成的工程目录结构不太整洁,不便于管理维护。所以,就需要手动去创建工程目录结构,使工程各种文件分类更加明确,便于愉快的使用!就以刚自制的STM32F030F4P6板子为例,讲解如何手动创建keil工程吧,本教程也使用于其他系列的微控制器工程!B站视频(视频简介附板...[详细]
-
工作环境:STM32CubeMXv6Keil5串口调试助手串口接收相对串口发送而言比较复杂,HAL_UART_Receive是阻塞式的发送,但是我们不可能让一块单片机一直进行监听,通常而言我们都会采用终端的方法完成串口接收。Cube的基本配置和串口发送是一致的,但最后要添加终端的勾选。首先打开左侧的下拉框Connectivity,点击USART1选项;在打开的选...[详细]
-
蓝牙低功耗(BLE)、Thread®、Matter及专有协议集成于一个安全且功能丰富的平台,可支持不断演进的标准、接口需求及市场需求随着互联标准和市场需求不断演进,可升级性已成为延长器件生命周期、减少重新设计并实现差异化功能的关键要素。为此,MicrochipTechnologyInc.(微芯科技公司)今日发布高度集成的PIC32-BZ6单片机(MCU)。该解决方案作为通用单芯片平...[详细]
-
作为嵌入式初级开发者,理解STM32的三种开发方式(寄存器、标准库、HAL库)的本质区别及其适用场景,是掌握STM32开发的关键。以下是专业且通俗的对比分析:1.寄存器开发(Register-Level)本质直接通过读写硬件寄存器控制外设,开发者需手动配置每一个寄存器的位字段,完全掌控底层硬件。代码示例//配置GPIOA的Pin0为输出模式RCC-APB2ENR|=1...[详细]
-
具体实现功能(1)按键控制传送带的启动或停止,按下按键后电机转动,表示传送带启动,再次按键按下,电机停止转动,表示传送带停止;用LED指示灯指示传送带工作情况;(2)利用光电传感器检测产品数量,按键控制光电传感器工作;(3)用LCD1602显示传送带通过产品的数量,显示终值与当前计数值;(4)通过矩阵键盘输入数字设置计数终止值,点击确定退出设置;矩阵键盘还可实现设置数值清零、计数值清零等...[详细]
-
具体实现功能(1)按下紧急报警按键,报警指示灯闪烁,蜂鸣器报警;(2)按下布防按键,布防指示灯开始闪烁,闪烁大约30秒,常亮后进入布防模式;(3)在布防模式下,红外(按键模拟红外传感器)检测到人后,红外检测指示灯亮,发出声光报警;(4)按下取消报警/布防按键,退出布防模式,取消报警。仿真演示视频:https://www.bilibili.com/video/BV16F4m157F...[详细]
-
具体实现功能(1)两个红外模块识别上车和下车,前门上车,后门下车,仿真中通过按键模拟红外功能;(2)当车内人数小于6人时,绿灯亮,表示可以继续上车;(3)当车上人数等于6人时,红灯亮,电机转动,表示车辆开始启动;(4)当车上人数大于6人时,蜂鸣器响,表示超载。仿真演示视频:https://www.bilibili.com/video/BV1Tx421y7ov/设计介绍...[详细]