大佬们好,最近做一个工装,买了个带485通信得电压表,通信返回得数据是:41 AB 09 0C 例程里转换成浮点型约为21.38v, 现在我请问,如何在单片机中处理这个数据,得到这个电压值。谢谢! 百度了,也没看明白。
24cxx系列的驱动可以通用吗?现在手头有个24c02的驱动,可以直接用在24c256上面吗?我只需要使用前2k的字节就好了,主要是板子上焊接的就是24c256,其实用不着那么大的空间。
做pwm实验使调节占空比的大小,换句话说,就是调节高低电平时间的长短。我认为这个改变占空比,也就是改变LED灯的亮的时间而已,可是,他为什么还能调节亮度? 具体实验现象使LED灯由暗慢慢变亮,求答疑!!
在串口函数中,如果要是想使用printf函数,那么应该去改底层程序,我这改了,为什么串口还是啥都不显示啊? 我这头文件是没问题的,串口数据调的也没问题啊!!
总是这个错误,到底是哪里错了,怎么解决 1615722054812..jpg (795.48 KB 下载次数: 0) 下载附件 保存到相册 2021-3-14 19:41 上传
我用的是定时器触发ADC采样,在ADC中断当中通过调用函数 HAL_ADC_GetValue(&hadcx); 来获取AD寄存器值, 该函数当中只有 return hadc->Instance->DR; 返回DR的值,请问:ADC是何时采集数据的呢? 猜想1:定时器触发之后先采样,采样完成在进入中断
使用芯圣的芯片的时候,发现芯圣的插件可以支持在MDK中进行配置一些参数,直接就改变了寄存器,程序中就不需要配置了。对这个功能很好奇,是否我们这些和谐版的用户也能使用这个功能呢?
各位大侠你们好,本人近日得到一废电子称。内有SM8951B单片一枚。想利用起来,不知用什么下载器烧写。用宏晶的STC_isp可以吗?如果可以怎么选单片机型号?望指教! IMG_20210310_144602.jpg (566.01 KB 下载次数: 0) 下载附件 保存到相册 2021-3-10 14:56 上传
stm32在涨,还好有gd这种替换,有个项目以前用的lpc2368现在也是涨得离谱,想找找有没有兼容的国产芯片替换?
由于本论坛禁止直接求程序禁止伸手党所以向大家请教一下大致的实现方法与思路理清头绪后我自己来写程序去实现 1614253066(1).jpg (37.18 KB 下载次数: 0) 下载附件 保存到相册 求实现功能的大致思路。特别是第三条,自动识别特殊车辆放行2021-2-25 19:38 上传 求实现交通灯功能的大致思路。特别是第三条,自动识别特殊车辆放行,无处下手。不要提用汇编语言,不懂。有没有C语言的
请问这里unsigned int MotorDelaySpeed=1TIMCT;中的TIM和CT分别代表什么意思?还有A = 0; //0xf1 b = 1; C = 1; D = 1; A=0,B=1表示什么意思?0XF1是怎么来的求求大神 单片机源程序如下: /@@************************************************************************************* * 标题: 步进电机试验一 * * * * 通过本例程了解步进马达使用及驱动程序编写 * *; 单双八拍工作方式: * *; A-AB-B-BC-C-CD-D-DA (即一个脉冲转 3.75 度) * * J14短路冒需断开 * * 请学员一定要消化掉本例程 * * **************************************************************************************/ #include "reg52.h" //Motor sbit A = P1^0; //定义管脚 sbit b = P1^1; sbit C = P1^2; sbit D = P1^3; /////////////////////////////////////// //步进电机驱动 unsigned char MotorStep=0; unsigned int MotorTimer = 0; unsigned int MotorDelaySpeed=1TIMCT; #define speed 8 // 调整速度 数值不要设的太低 低了会引起震动。 /@@***************************************************** * 初始化马达 * ******************************************************/ void InitMotor() { A = 1; b = 1; C = 1; D = 1; } void SetMotor() { // if(Speed == 0) return; MotorDelay=Speed; //调整速度 switch(MotorStep) { case 0: if(TIM) // A { A = 0; //0xf1 b = 1; C = 1; D = 1; MotorStep = 1; TIM=0; } break; case 1: // AB if(TIM) { A = 0; //0xf3 b = 0; C = 1; D = 1; MotorStep = 2; TIM=0; } break; case 2: //B if(TIM) { A = 1; b = 0; //0xf2 C = 1; D = 1; MotorStep = 3; TIM=0; } break; case 3: //BC if(TIM) { A = 1; b = 0; //0xf6 C = 0; D = 1; MotorStep = 4; TIM=0; } break; case 4: //C if(TIM) { A = 1; b = 1; //0xf4 C = 0; D = 1; MotorStep = 5; TIM=0; } break; case 5: //CD if(TIM) { A = 1; b = 1; //0xfc C = 0; D = 0; MotorStep = 6; TIM=0; } break; case 6: //D if(TIM) { A = 1; b = 1; //0xf8 C = 1; D = 0; MotorStep = 7; TIM=0; } break; case 7: //DA if(TIM) { A = 0; b = 1; //0xf9 C = 1; D = 0; MotorStep = 0; TIM=0; } break; } } void system_Ini() { TMOD|= 0x11; TH0=0xDC; //11.0592M TL0=0x00; IE = 0x8A; TR0 = 1; } main() { system_Ini(); InitMotor(); while(1) { SetMotor(); } } /@@************************************************ * * * 定时中断延时 * ************************************************/ void Tzd(void) interrupt 1 { TH0 = 0xfe; //11.0592 TL0 = 0x33; if( CT++==speed) {TIM=1; CT=0; } } 复制代码