-
使用串口芯片CH340中的DTR引脚和RTS引脚来控制单片机复位引脚和BOOT0引脚的电平状态,从而实现一键下载。对于这个一键下载电路,重点是这2个地方没问题就足够理解了:1.得有看懂三极管电路开关状态的能力2.得明白CH340的DTRRTS引脚电平状态是可以由软件来控制的1.使用串口下载前,先这样连接:单片机串口1的tx1rx1分别和ch340的rxtx连接,同时把boot0b...[详细]
-
按IAR的规矩中断向量要加2,如PA口的中断向量为3,那么在IAR程序中应写成#pragmavector=0x05。而PD7和PD其他端口不一样,PD7后面拖了个小尾巴TLI,TLI拥有芯片最高级别中断,享有独立专用的中断向量号0,因此,按IAR的规矩,向量号加2,程序改成#pragmavector=0x02,而不是PD口的其他中断号0x08.另外在STM8L15X.H中 有以下宏定义...[详细]
-
voidSTM32_Clock_Init(u8PLL){unsignedchartemp=0;MYRCC_DeInit();//复位并配置向量表RCC-CR|=0x00010000;//把时钟控制寄存器的地16位置1来开启外部振荡器while(!(RCC-CR17));//通过判断时钟寄存器的地17位,看一下时钟外部振荡器是否就绪...[详细]
-
最近看了硬汉分享的一个内容:为什么复位中断服务程序里面直接调用的main函数,难道所有程序都在复位中断里面执行的?首先,Reset_Handler是单片机的一个中断,其次,main函数也确实被Reset_Handler中断调用了。那不是,main函数在中断里执行?看到这个问题,你是否也曾想过这个问题,难道我们以前的认识错了?说实话,我都没曾想过这个问题,我觉...[详细]
-
52单片机里面有一个T2定时器,它比普通的16为定时器功能要强大多了,今天研究了T2定时器的一个应用可编程时钟输出功能。配置成500KHZ的时钟信号输出后,用示波器测量了时钟输出脚P1^0,发现还真准。为了把定时器配置成时钟发生器,位C/T2(T2CON.1)必须清0,也就是选择定时模式,位T2OE(T2MOD.1)必须置1,使能定时器2输出。位TR2(T2CON.2)启动、停...[详细]
-
1.实用性改善为了使上一讲的功能更加完善,我们编写新的实用型的代码,效果是让数码管显示的数就是输入引脚高电平持续的微秒数,最高能捕获到999999微秒。如果高电平持续的时间超出这个取值范围,那么数码管不够显示,所以超出范围的话我们就让6个数码管显示FFFFFF。因为计数器计时到65535之后就会产生溢出,也就是超过71ms就会溢出一次,我们知道计数器溢出也是会产生中断的,所以在中...[详细]
-
/**初始化UART0*57600,8N1,无流控*/voiduart0_init(void){GPHCON|=0xa0;//GPH2,GPH3用作TXD0,RXD0GPHUP=0x0c;//GPH2,GPH3内部上拉ULCON0=0x03;//8N1(8个数据位,无较验,1个停止位)UCON0=0x05...[详细]
-
XTAL1与XTAL2分别为用作片内振荡器的反向放大器的输入和输出,如Figure12所示,这个振荡器可以使用石英晶体,也可以使用陶瓷谐振器。熔丝位CKOPT用来选择这两种放大器模式的其中之一。当CKOPT被编程时振荡器在输出引脚产生满幅度的振荡。这种模式适合于噪声环境,以及需要通过XTAL2驱动第二个时钟缓冲器的情况。而且这种模式的频率范围比较宽。当保持CKOPT为未编程状态...[详细]
-
#includeregs.hvoidenable_mmu(unsignedlongttb);voidinit_ttb(unsignedlong*ttb_base);voidmmap(unsignedlong*ttb_base,unsignedlongva,unsignedlongpa);voidmemset(char*buf,charch,in...[详细]
-
一、手动安装匹配的装置包装上MDK5后,是和之前的版本不冲突的,之前的KEIL4forC51和forARM都可以留着不必卸载。可以另外建立一个安装目录,两者相安无事。在MDK5新建工程,和之前的版本有很大不同。如果第一次用,之前选择目标型号的那个对话框里,只有ARM内核可选,没有具体的单片机型号。估计是因为发展到现在单片机不同厂商的不同产品已经太多了,如果囊括所有的devi...[详细]
-
一、硬件连接4412开发板的HDMI口,小HDMI口输出HDMI信号,大HDMI口用来连接各种屏(只是用了HMDI的线,并不是标准的HDMI)。二、安装超级终端首先需要安装USB转串口,可以是CH340驱动,或者是PL2303驱动。连接硬件时也要注意,精英版的调试串口是串口2。连接串口1没有信号。然后安装hyperterminal(超级终端v2.4.8)。设置的波特率为1152...[详细]
-
测试范围:360.00V5A2000W设计思路:1、利用AVR单片机ATtiny26L一对差分AD做VI转换;2、为了提高测试的速度,使用V1、I1、V2、I2.......V64、I64交错AD测试;取样时间是50Hz工频的整数倍;Vout=1/64(V1+....+V64)Iout=1/64(I1+....+I64)Pout=1/128(V1*I0+V1*I1+V...[详细]
-
这个是STM32的PWM输出模式,STM32的TIM1模块是增强型的定时器模块,天生就是为电机控制而生,可以产生3组6路PWM,同时每组2路PWM为互补,并可以带有死区,可以用来驱动H桥。 下面的代码,是利用TIM1模块的1、2通道产生一共4路PWM的代码例子,类似代码也可以参考ST的固件库中相应exampleC语言:TIM1模块产生PWM,带死区//Step1.开启TIM和...[详细]
-
左侧开关减速,右侧加速。l293d芯片驱动直流电机单片机源代码:#includereg51.h#defineTpwm0xfc18//PWM周期对应的计数值1ms,基于12MHz晶振unsignedintduty={0,/*0*/0xff9c/*100us*/,0xff38/*200us*/,0xfed4/*300us*/,0xfe70/*400us*/,0xfe...[详细]
-
再次这里给自己强调一下,网上其他解决这个问题的是基于u-boot其他版本,自己在试用了其他方法之后均未能解决这个问题,可能是由于代码不一样,因此需要解决这个问题时,改动的代码当然也不一样。这里先按照这位朋友的方法解决,日后如果有能力,再回来补充这篇文章。方法是:找到u-boot-2010.03/cpu/arm1176/s3c64xx/下的time.c文件。ulongget_time...[详细]