【微机原理】红外通信系统
# 前言
一、红外通信系统
二、红外调制解调的原理
空闲状态:红外LED不亮,接收头输出高电平
发送低电平:红外LED以38KHz频率闪烁发光,接收头输出低电平
发送高电平:红外LED不亮,接收头输出高电平
总而言之,只有红外LED发送38KHZ的闪烁信号时,红外接收头OUT引脚才会对外输出低电平信号
红外发送–红外接收的本质是调制和解调,在这种条件下,可以过滤掉自然界中的“噪声信号”,只有38KHZ附近的红外信号才能被红外接收头识别转换为对应的低电平。
转换示意图:
1.红外LED发出的信号
2.红外接收头发出的信号
其中,红外接收头发出的低电平信号的宽度等价于红外LED发送的38KHz信号的时间。
一、基于CCP1输入捕获模式的解调电路
1. Proteus生成基带信号
1.1脉冲最小单位
1.2特定脉冲序列
从左往右表示数据从高位到低位,如图所示为01001101
1.3仿真结果
代码部分
1234567891011121314151617181920212223242526272829303132333435363738#include < ...
【HEXO】[2] 多线程部署常见问题
HEXO更新日志
2024.5.3
重要更新:将HEXO博客部署到腾讯云轻量化服务器,极大提升国内访问速度,访问ip地址:Turin’s Blog - 数理照亮世界
优化主页文章卡片界面,参考文章:首页 | Butterfly主题美化教程 (zhheo.com)
优化网站页面显示效果:透明度。博客背景使用一图流 | QianChengGit の小森林
xxxxxxxxxx git remote add [alias] [url]//参数[alias]为别名, [url]为远程仓库的地址bash
一、HEXO部署到云服务器(Ubuntu系统)
Hexo部署至服务器(Ubuntu 20.04)-腾讯云开发者社区-腾讯云 (tencent.com)
04_Hexo-多平台部署-云服务器-GitHub-Gitee | Mycpen
二、Ubuntu允许root连接服务器
Linux开启ssh并允许root登录(ubuntu、centos、kalilinux)_ssh允许root远程登录-CSDN博客
报错信息 “E45: ‘readonly’ option is set ...
【ROS2】“人在回路”---与生成式人工智能交互的视觉医疗机器人
“人在回路”—与生成式人工智能交互的视觉服务机器人
第一次更新:2024.4.28
前言
人在回路(Human-in-the-loop)是一种模式,类似于人机闭环系统或人机互助系统。这种模式被认为是机器学习、人工智能和机器智能的一种可行发展模式,需要人与机器之间的相互作用。在这种模式下,人类始终是模型的一部分,影响着模型的结果,并且需要人类的智能来帮助机器更加智能化。
ChatGPT是一款强大的基于深度学习的自然语言处理模型,能够生成高质量的自然语言文本。使用ChatGPT+TogetheROS,即ChatRobot将文字描述转化为小车控制指令,根据描述生成特定功能的代码,使机器人按照描述执行相应的任务。–转自NodeHube社区。–转自NobeHube
项目信息:
我们的机器人定位为医疗看护机器人(无人车),使用RDK X3 嵌入式AI开发板作为主控,通过Opencv等进行视觉识别,基于类似激光雷达测距的方法实现自主导航运动,满足不同场景下的控制需求。通过ROS2系统使小车与计算机进行通信。
我们计划使用OpenAI提供的API接口写入小车系统,实现初步的语音交互到控制的过 ...
【微机原理】[软件操作]仿真调试
软键盘
选择使用按键的属性
【stm32单片机】[8]AD/DA转换
库函数解释
void RCC_ADCCLKConfig(uint32_t RCC_PCLK2);
恢复缺省配置
void ADC_DeInit(ADC_TypeDef* ADCx);
ADC初始化
void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);
结构体初始化
void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);
ADC上电
void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);
开启DMA输出信号
void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);
中断输出控制
void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);
用于控制某个中断能否通往NVIC
复位校准
void ADC_ResetCalibrat ...
【stm32单片机】[7]编码器接口测速
相关库函数
定时器编码器配置
void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,
uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);
TIMx:选择定时器
TIM_EncoderMode: 选择编码器模式,T1单独计数,T2单独计数,T1/T2同时计数
TIM_IC1Polarity:电平极性
TIM_IC2Polarity:电平极性 可以通过配置这两个参数,设置正相和反相
编码器测计数
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include "stm32f10x.h" // Device headervoid Encoder_Init(void){ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,EN ...
【微机原理】方波发生器-电子琴
如何得到精准的250us定时?
先确认大概的定时器计数器值,再利用跑马表调整误差
【微机原理】[软件操作]-跑马表
如何打开Stop Watch窗口?
在DEBUG下选mplab sim后,再点DEBUGSETTING来设好频率,设好后点stopwatch
跑马表仿真测试
在中断对应的位置打上断点,点击仿真运行,即可通过跑马表查看每次进中断的运行时间
车辆里程表
proteus仿真
可以通过工具栏调试选项,查看各个所需的调试窗口,运行调试工具。
ps:step into可以跳过断点
第二次进中断,LED灯点亮
ps:cof为仿真文件,hex为下载文件
【微机原理】[2]中断系统
保护现场
【单片机】串口通信
蓝桥杯部分
1.串口底层
1234567891011121314151617181920212223242526272829#include <Uart.h>/* 串口初始化函数 */void UartInit(void) //9600bps@12.000MHz{ SCON = 0x50; //8位数据,可变波特率 AUXR |= 0x01; //串口1选择定时器2为波特率发生器 AUXR |= 0x04; //定时器时钟1T模式 T2L = 0xC7; //设置定时初始值 T2H = 0xFE; //设置定时初始值 AUXR |= 0x10; //定时器2开始计时 ES = 1;//允许串口中断 EA = 1;//总中断开启}/* 字节发送函数 */void SendByte(unsigned char dat){ SBUF=dat;//将dat数据赋给SBUF,将数据发送出去 while(TI == 0);//等待数据发送 TI = 0;//将发送标志位清零}/* 字符串发送函数 */void Uart_Send_String(unsigned cha ...
【蓝桥杯单片机】考点复盘1
一、LED模块
1.LED底层代码
12345678910111213141516void Led_Disp(unsigned char addr, enable){ static unsigned char temp = 0x00; static unsigned char temp_old = 0xff; if (enable) temp |= 0x01 << addr; else temp &= ~(0x01 << addr); if (temp != temp_old) { P0 = ~temp; P2 = P2 & 0x1f | 0x80; P2 &= 0x1f; temp_old = temp; }}
2.基本调用方式
123456ucLED[n]=x;中断程序{ Led_Disp(Nixie_Pos,ucLED[Nixie_Pos]);}
二、按键模块
1.按键底层代码
12345678 ...
【stm32单片机】[6]输入捕获和输出比较
基本概念
另外它们的CH1到CH4,4个通道的引脚,也是公用的
所以对于同一个定时器,输入捕获和输出比较只能用其中一个。
一、输出比较
根据CNT和CCR的大小关系,从通道引脚输出高低电平
二、输入捕获
输入滤波器:可以对毛刺信号进行滤波
交叉输入的作用?
TRC?
CNT计数器是由内部的标准时钟进行驱动的,可以用于测量外部检测两个上升沿的时间间隔,
所以需要在检测到一个上升沿过后,清零CNT,这样在第二次上升沿后,CNT值就是测周法的N,可以通过主从触发模式,自动完成。
总结:
输入捕获类似于外部中断。都是检测边沿,然后执行相应的动嘴,而在输入捕获中。检测到指定电平跳变后,CNT的值所存到CCR中。
输出比较。引脚是输出端口,根据CNT和CCR的大小关系执行输出的动作。
输入捕获。引脚是输入端口,接收到输入信号,执行锁存的动作。
#主从触发模式:
将主从触发模式和PWMI模式相结合,可以让硬件自动测量频率和占空比,软件无需进行干预。
三、频率测量
PS:STM32测频率只能测量数字信号,若测量正选波,可以用运放电路搭建一个比较器。若测量的信号电压较高,需 ...