头像-8906

mingming

  • 北京市北京市
  • RF/无线

个人成就

获得 1 次赞

帮助过157人

51单片机C语言while(1)执行问题

如下图所示,这是一个利用定时器中断让D1(P2^0)led灯隔1秒闪烁的程序,我的问题是:主函数中while(1)的作用是什么?其他渠道得知是让main函数在此循环,可是while(1)下的函数内容不是为空吗?为什么能循环主函数?还是我哪里理解有问题,请大家指教,谢谢。/@@************************************************************************************** 实验现象:下载程序后,D1小灯循环点亮1秒,熄灭1秒。使用单片机内部定时器可以实现准确延时                    接线说明: (具体接线图可见开发攻略对应实验的“实验现象”章节)                    1,单片机-->LED&交通灯模块                                    P20-->D1                                      注意事项:                                                                                                                                                                   ***************************************************************************************/ #include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16;          //对数据类型进行声明定义 typedef unsigned char u8; sbit led=P2^0;         //定义P20口是led /@@******************************************************************************* * 函 数 名         : Timer0Init * 函数功能                   : 定时器0初始化 * 输    入         : 无 * 输    出         : 无 *******************************************************************************/ void Timer0Init() {         TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。         TH0=0XFC;        //给定时器赋初值,定时1ms         TL0=0X18;                 ET0=1;//打开定时器0中断允许         EA=1;//打开总中断         TR0=1;//打开定时器                         } /@@******************************************************************************* * 函 数 名       : main * 函数功能                 : 主函数 * 输    入       : 无 * 输    出             : 无 *******************************************************************************/ void main() {                 Timer0Init();  //定时器0初始化         while(1);                } /@@******************************************************************************* * 函 数 名         : void Timer0() interrupt 1 * 函数功能                   : 定时器0中断函数 * 输    入         : 无 * 输    出         : 无 *******************************************************************************/ void Timer0() interrupt 1 {         static u16 i;         TH0=0XFC;        //给定时器赋初值,定时1ms         TL0=0X18;         i++;         if(i==1000)         {                 i=0;                 led=~led;                 }         } 复制代码

直流信号能直接接积分器电路进行测量吗?

信号源R3实际上等效于一个在约0.5G欧姆的基础上进行脉冲变化(变化到200G欧姆)的电阻。我想通过后面的积分器电路来测量Vin处的电压脉冲式变化。请问这个脉冲信号是不是个直流信号啊?因为我计算Vin处的电压应该是在-50mV的基础上进行的-0.25mV的脉冲变化。如果是个直流信号那么能用后面的积分器电路直接放大并测量吗?如果不能直接进行测那我把V1变成一个+-100mV的交流电的话Vin处是不是也变成交流电势了?这时候是不是就可以直接接后面的积分器测量了? 图片2.png (65.79 KB 下载次数: 0) 下载附件  保存到相册 2021-1-26 09:32 上传

STM32C8T6定时器编码器的问题

程序用到定时器2和定时器4连接编码器,然后我把程序里的定时器4改成定时器3,如下图,改了这些地方,不知道为啥就是不行,改回定时器4就行了,是还有什么地方需要修改吗? 5WZ{GK9JV])_O}Z$VA9NLQT.jpg (32.91 KB 下载次数: 0) 下载附件 昨天 12:52 上传 1G7B18JX](([U3TPNM05HR6.jpg (51.96 KB 下载次数: 0) 下载附件 昨天 12:52 上传 ($OAL4PI3_V96@CI$T8X)6O.jpg (11.37 KB 下载次数: 0) 下载附件 昨天 12:52 上传

使用TFTP和NFS烧写内核怎么一复位就还原了?

烧写进去后,进入内核打印的编译日期是对的,但是一按复位按钮(红色的按钮)后,内核日期又变成以前了

请问用stm32f103输出的PWM信号控制直流无刷电机,占空比初始化是0.01,为什么一上电电机会转速非常大,然后再恢复正常。

如题,除了刚上电电机突然运转非常快以外,改变占空比也会突然运转快一下,然后恢复正常。不知道为什么

vl53l0x移植到stm32f103上用的hal库

移植后能收到数据,但是一直打印距离值为0,一般会是哪里的问题

请教:将MobaXterm软件作为串口调试助手使用,如何打开键盘输入以及如何清空屏幕?

如题:看了左神的linux视频,感觉这款软件还是很漂亮,并且很强大的,因此就想尝试使用。 但是始终没有解决我描述的这两个问题,并且网上也找不到相应方法,因此在论坛请教下各位。 1、如何打开键盘输入功能? 2、如何清空当前屏幕字符?

让单片机P3.4 不断接地 为啥记不了数呢?

void init() {                        TMOD = 0x05;//工作方式0000 0101         TL0 = 0;         TR0 = 1;          } void main() {                  init();         while(1)         {                 q = TL0;                 displayShu(TL0);//显示TL0                                delayShu(200);//延时         }                   } 让P3.4 不断接地 为啥记不了数呢,