推荐阅读最新更新时间:2024-03-16 15:13
stm32单片机红外遥控超声波避障小车
和同学一起在学校参加院电子设计大赛做的项目,看起来时间很长,但实际上我们拢共做的时间差不多是3天的样子。 板子是正点的,所以很多地方我们就直接扒的正点的例程,比如红外遥控的部分完整拿过来了,能直接用。 我们在完成学校的要求后又多加了测距显示和差速调节(让小车可以从完全停止到最高速度),后面我会分块尽量详细叙述小车的功能原理及代码介绍。 视频演示 https://www.bilibili.com/video/av85501350/ 电源 我们采用的是三节18650供电,三节电池就有12v,用来驱动小车绰绰有余,为了获得更稳定符合小车需求的电压,我们又采用了一个LM2596S降压模块,把12V的电压给降到3v给单片
[单片机]
STC12C5A60S2使用NRF24L01和stm32通信
/******************************************/ // // 该程序工作的主频是12MHz,单片机使用STC12C5A60S2 // /******************************************/ #include STC12C5A60S2.H #define uchar unsigned char #define uint unsigned int /********** NRF24L01寄存器操作命令 ***********/ #define READ_REG 0x00 //读配置寄存器,低5位为寄存器地址 #define WRITE_REG
[单片机]
STM32启动文件简单分析
STM32启动文件简单分析(STM32F10x.s适用范围)定时器, 型号, 名字在 STM32不完全手册里面 ,我们所有的例程都采用了一个叫STM32F10x.s的启动文件,里面定义了STM32的堆栈大小以及各种中断的名字及入口函数名称,还有启动相关的汇编代码。STM32F10x.s是MDK提供的启动代码,从其里面的内容看来,它只定义了3个串口,4个定时器。实际上STM32的系列产品有5个串口的型号,也只有有2个串口的型号,定时器也是,做多的有8个定时器。比如,如果你用的STM32F103ZET6,而启动文件用的是STM32F10x.s的话,你可以正常使用串口1~3的中断,而串口4和5的中断,则无**常使用。又比如,你TIM1~
[单片机]
Keil环境,在调试STM32中犯过的错
1、貌似的变量冲突 程序中有一个全局变量赋值gUI = 0x0A;可是发现gUI并没有获得这个值,而是另一个位于RAM区首地址0x2000 0000的全局变量获得了这个值,感觉奇怪,堆栈溢出? 后来检查发现,在程序的前一个子函数中有语句: char ID ; sprintf(ID, %02X%02X%02X%02X , Card_Id , Card_Id , Card_Id , Card_Id ); OLED_8x16StrP(0,2,(u8 *)ID); //液晶显示ID号 上面代码中ID 缺少了字符串结束符,而OLED_8x16StrP()函数是以字符串结束符,也就是某个字节为0值判断显示结束的,于是不知道这个函数
[单片机]
stm32,ov7670识别二值化并识别黑色物体,串口返回坐标值
自己网上找的代码,根据要求修改可二值化,识别黑色物体,用红色框框框起来,串口返回坐标值 单片机源程序如下: #include led.h #include delay.h #include key.h #include sys.h #include lcd.h #include usart.h #include string.h #include ov7670.h #include tpad.h #include timer.h #include exti.h #include usmart.h #include EasyTracered.h const u8*LMODE_TBL ={
[单片机]
STM32之FSMC的液晶使用
经过这两天的学习液晶,对STM32的FSMC有了初步的了解。虽然遇到了一些问题,但经过不懈的努力,都一一的解决了,接下来我就使用FSMC可能遇到的问题进行说明。希望能对大家的学习有所帮助。 一、端口配置 1、 由于FSMC写NOR时序与8080接口的时序十分相识,因此我们采用模拟8080时序, 2、 STM32的引脚图如图所示。 3、根据上图我们可以得出,FSMC的数据端口D 如下 4、我们使用的是 FSMC 的信号线 NE1 作为控制 8080 的 CSX 片选信号,所以我们把本成配置为 FSMC_Bank1_NORSRAM1 (NE1 片选BANK1)。由上图得FSMC-NE1 ==PD7
[单片机]
STM32之CAN ---CAN ID过滤器分析
1 前言 在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此,发送者以广播的形式把报文发送给所有的接收者。节点在接收报文时,根据标识符(CAN ID)的值决定软件是否需要该报文;如果需要,就拷贝到SRAM里;如果不需要,报文就被丢弃且无需软件的干预。 为满足这一需求,bxCAN为应用程序提供了14个位宽可变的、可配置的过滤器组(13~0),以便只接收那些软件需要的报文。硬件过滤的做法节省了CPU开销,否则就必须由软件过滤从而占用一定的CPU开销。每个过滤器组x由2个32位寄存器,CAN_FxR0和CAN_FxR1组成。 为了让大家了解STM32的bxCAN的接收过滤机制,首先大
[单片机]
STM32输入捕获模式设置并用DMA接收数据
环境: 主机:WIN7 开发环境:MDK4.72 MCU:STM32F103 说明: 项目中需要进行红外学习,于是采用输入捕获取得电平变化时间.并将数据放在DMA中.这样可以避免频繁中断消耗CPU资源. 采用的是PB1脚,对应TIM3的通道4. 源代码: /********************************************************************* * 接口函数:初始化红外学习模块 **********************************************************************/ voi
[单片机]