这是一个简单的红外解码程序,是针对9ms起始码和4.5ms结束码的红外信号晶振用的是11.0592M的#include#includesfrp0=0x80;sfrp3=0xb0;sbitp32=p3^2;unsignedchardm,i,j,k;unsignedchardataa[4];//定义4个数组,用来
stm32 HardFault_Handler调试及问题查找方法STM32出现HardFault_Handler故障的原因主要有两个方面:1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。2、堆栈溢出。增加堆栈的大小。
据说是AT24C01-AT24C256通用源程序,但按照我的经验,这个源程序仅适合AT24C04-AT24C256。/*Sample:/*main(){.../*ReadMem(l,x,y);/*读。l为本次访问的器件号,在宏定义时分配不同芯片的不同器件号,x为本次欲读出的
书接上文:最近在研究用低速、低RAM的单片机来驱动小LCD或TFT彩屏实现动画效果首先我用一个16MHz晶振的m0内核的8位单片机nRF51822尝试驱动一个1.77寸的4线SPI屏(128X160),发现,刷一屏大约要0.8s左右的时间,具体
/*------------------------------------------------------------------------------为了安全起见,程序中很多NOP是冗余的,希望读者能进一步精简,但必须经过验证。 Atmel 24C01 比较特殊,为简约型. 51晶振为11.059
最近在研究STM32F4的ADC采样功能,中间遇到了一些问题,写下来以备后用。F4和F1有很多库函数是不一样的,在参照F1的教程的时候,不能直接抄他的实验代码,否则会出错。因为要用DMA将ADC转换得到的值快速传递到SRAM中
STM32F051比较器的比较器设置比较简单。其中可以以内部参考电压VREFINT作为比较对象。在这里,很容易想当然的认为VREFINT是3.3V,而导致比较器的结果不正确,而实际上VREFINT的值为1.2V。
参考正点原子PWM输出MINI板输出实验。首先附PWM输出通道原子提供的代码只有一路PWM,但是定时器的配置已经无需更改了。我们需要修改PWM.c文件1.添加通道二的初始化TIM_OC2Init(TIM1,&TIM_OCInitStructure);2.CH2预装
1.1.8内存驱动实验设置该工程加载时运行时地址为0x30000000,如图2-55所示:图2-55设置加载时运行时地址init.s:本程序文件主要实现了,关闭看门狗,初始化内存,拷贝ROM数据到内存中,然后跳往内存中执行xmain函数,
在MCS-51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。见下表EA--ESET1EX1ET0EX0其中EA是总开关,如果它等于0,则所有中断都不允许。ES-串行口中断允许ET1-定时器1中断允许E
1、基本的GPIO配置,注意,因为需要用到普通IO口作为中断输入口,因此是用了IO口德复用功能,因此必须打开RCC_APB2Periph_AFIO时钟,负责复用IO无效。2、IO口复用功能映射3、嵌套中断向量配置调试发现这几句话是必须
void Flash_Init(void){// 调整flash与时钟速率之间的关系FLASH->ACR |= FLASH_ACR_LATENCY;}void Flash_Unlock(void){// FLASH->CR 的第7位为解锁的标志位或者上锁的操作位while(FLASH->CR & FLASH_CR_LOCK){FLASH-
单片机中的定时/计数器都能有多种用途,要通过定时/计数器的方式控制字来设置,需要的用途。 在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称,我们在写程序时就能直接用
我们前边学第7章点阵 LED 的时候,可以实现上下移动,左右移动等。而对于 1602 液晶来说,也可以进行屏幕移动,实现我们想要的一些效果,那我们来用一个例程实现字符串在 1602 液晶上的左移。每个人都不要只瞪着眼看
首先应该了解数码管及其工作原理。了解你使用的是共阴还是共阳数码管,其次了解数码管的段选位选。接下来是一个例程#include typedef unsigned char uchar; #define wei_h P5OUT |= BIT5 #define wei_l P5OUT &= BIT