精华内容
下载资源
问答
  • 外部触发选择寄存器TZSEL 寄存器设置选项如下: TZCTL主要设置TZA 和TZB寄存器即可,主要定义当外部触发事件发生时,定义EPWMxA和EPWMxB所采取的动作:TZEINT 中断使能寄存器控制周期触发和单次触发的中断标志...
  • 常见led控制驱动芯片带寄存器设置资料:如 icn2038s,icn2053,mbi5151,mbi5152,mbi5153,mbi5169,mbi5170,mbi5224,mbi5324,,mbi6023等
  • PWM使用寄存器设置

    2018-05-05 21:12:32
    STM32F103ZE开发板,通过对tim3时钟相关寄存器配置,实现对LED亮度调节.相关实现方法可参考使用寄存器设置>> .
  • OV5640寄存器设置中文版,详细描述了寄存器的具体设置,并给出了例程
  • 模式寄存器设置如图1所示,可以说不是通过改变数据而是通过改变地址进行操作的。  图1 SDRAM的模式寄存器存取操作  (1)OPCODE(操作代码:BA0/BA1、A8~A12)  这是写人模式的设置。  ·Burst read ...
  • ov5640各个模式下的寄存器设置. 1.isp部分设置 2.每个模式下的调整
  • TDC_GP22寄存器设置方法,主要介绍几大寄存器的设置步骤和设置注意事项,供初学者参考,有7个32位的配置寄存器。
  • 本文介绍了LMP91000芯片寄存器设置的源代码的编写实例
  • 控制ARM12C总线接口需要配置总线控制寄存器(rIICCON)、总线状态寄存器(rIICSTAT)、总线发送接收移位寄存器(rIICDS)和总线地址寄存(rIICADD)这4个寄存器。总线控制寄存器通常在程序开始时配置,包括应答信号和接收
  • OV5640寄存器设置

    2018-01-16 19:31:27
    可以选择设置qsxga: 2592*1936,qxga: 2048*1536,UXGA: 1600*1200,1080P : 1920*1080,SXGA: 1280*960,//XGA: 1024*768
  • ov7670带fifo和不带fifo寄存器设置rgb565或者yuv,vga,qvga,qqvga的设置代码
  • soc2010 寄存器设置工具,自动生成
  • IMX214寄存器设置

    2018-10-09 13:25:37
    IMX214寄存器设置,所有寄存器说明书,用于镜头的开发
  • Freescale mpc5748g LIN slave mode 寄存器设置吧 答复
  • 这张excel表格里面有公式可以计算AD9883A寄存器的配置。 另外我编辑了常用的PC分辨率行频,场频,像素频率以及对应的AD9883A寄存器设置参考
  • 单片机寄存器设置

    千次阅读 2014-10-16 13:10:35
    调试LPC1768串口1,被困惑了四五天,设置什么的都没有问题,但是

    调试LPC1768串口1,被困惑了四五天,设置什么的都没有问题,但是程序下载到板子,用示波器观测 串口1的 TX引脚,一直是低电平,发送不出去数据。究其原因,原来是自己的一个编程习惯所导致。下面分享一下问题的原因所在。                                    

    我们都知道,在单片机的寄存器设置过程中,有的时候设置的是某一个位,保证其它位不受影响。例如把PINSEL0(32bit)的第3位和第1位设置成1,第2位和第0位设置成0,其它位保持不变。在这之前我的写法是 PINSEL0 &= 0xFFFFFFFA 。咋一看没有什么问题,其实不然。最后一个字节为 1010 即十六进制的A。这样写可以保证其它位保持不变,但是需要设置的那几个位就不一定了,如果PINSEL0读出的字节是0x1234567F,那么PINSEL0 &= 0xFFFFFFFA 的结果是你想要的结果,即0x1234567A;但是问题就出在这里,假如PINSEL0读出的数据是0x12345670呢,执行 PINSEL0 &= 0xFFFFFFFA的结果会是0x1234567A吗,显然不是。因为0&A=0,即结果是0x12345670。 解决该问 题的办法是 :读--->改---->写回                                                                                       读:即读取寄存器的值;改:即把读出值的需要设置的位全部设置成0,按位与上设置的值;写回,即把第上一步改好的数据写回原寄存器。这样就完成的设置。按照这个方法,写出的程序是 PINSEL0 = (PINSEL0 & 0xFFFFFFF0) | 0x0000000A;这样才能保证其它位不变,把想要设置的位设置成想要的数据。



    展开全文
  • bq2419x GUI (Rev. A)电源管理芯片寄存器设置助手,适用于如bq24195、等等
  • 外部中断使用指南(寄存器设置

    千次阅读 2016-09-11 21:51:01
    实验板子:tiny210(芯片:s5pv210) 实验目的:通过外部中断操作两个按键实现对LED灯的亮灭控制 ...步骤:①初始化GPIO端口,使GPIO为外部中断状态;(寄存器:GPxxCON)  例:    ②配置

    http://www.bubuko.com/infodetail-694078.html


    实验板子:tiny210(芯片:s5pv210)

    实验目的:通过外部中断操作两个按键实现对LED灯的亮灭控制

    步骤:①初始化GPIO端口,使GPIO为外部中断状态;(寄存器:GPxxCON)

                 例:

                    技术分享

       ②配置外部中断触发模式,上升沿触发,下降沿触发,双边触发,高电平触发,低电平触发(寄存器:EXT_INT_x_CON)

                例:

                    技术分享

             ③取消屏蔽外部中断(寄存器:EXT_INT_x_MASK)

                 例:

                    技术分享

             ④通过向量中断控制器(VIC)使能中断(寄存器:VIC0INTENABLE,VIC1INTENABLE,VIC2INTENABLE,VIC3INTENABLE)(注:几乎每一个中断都有其对应的VIC)

             技术分享

             VICINTENABLE寄存器分别包括VIC0,IVC1,VIC2,VIC3四个,每一个中断控制器有32位,每一位对应一个中断源(假如你要使能外部中断1,那么首先要先找到外部中断1对应哪一个中断控制器,然后找到这个中断控制器的相应位为设置)

            ⑤设置中断程序入口(寄存器:VICxVECTADDRx)

               例:*(VICxVECTADDRx) = 函数名(函数名就是一个地址)

    技术分享

           ⑥开总中断         

    1 __asm__( 2 /*开中断*/ 3 "mrs r0,cpsr\n" 4 "bic r0, r0, #0x80\n" 5 "msr cpsr_c, r0\n" 6  : 7  : 8 );

           ⑦编写中断处理程序(清除中断寄存器:EXT_INT_x_PEND)

     

     1 void 函数名()  2  {  3 //1. 保存环境  4  5 //2. 中断处理  6  7 //3. 清除中断  8 *(EXT_INT_x_PEND) = ~0x0;//写1清除中断标志   9 *(VICxADDRESS) = 0; 10 //4. 恢复环境  11 }

     

    中断编写思维导图(仅供参考流程思路):

    技术分享

     

    总结:由中断编写思维导图应该有的思路是:1. 对相应GPIO以及中断源的初始化

                                                            2. 当中断发生,中断源对应的PEND寄存器会被置1,所以在中断处理程序里应该清除中断标志(注:写1清除中断)

                                                            3. 当中断发生,如果MASK寄存器没有取消屏蔽,则中断不被允许,所以在编写中断程序时应首先取消相应中断的屏蔽

                                                            4. 别忘了VIC的初始化,包括用VICINTENABLE对相应中断进行使能,用VICVECTADDR寄存器设置中断处理程序入口

     s3c2440示例代码(仅供参考思路步骤,与s5pv210不对应)

     1 void key_init()  2 {  3 rGPGCON &= ~(0x3 << 0); //设置GPGO—EINT[8]   4 rGPGCON |= (0x2 << 0); //设置GPGO—EINT[8]   5 rEXTINT1 &= ~(0xf << 0); //触发方式为低电平有效   6 rEINTPEND |= (1 << 8); //清中断   7 rEINTMASK &= ~(1 << 8); //允许外部中断  8 pISR_EINT8_23 = (U32)Key_handler; //中断服务程序  9 EnableIrq(BIT_EINT8_23); //允许中断(INTMSK) 10 } 11 12 static void __irq key_handler() 13 { 14 if (rINTPND == BIT_EINT8_23) //INTPND同时只能有一位为1 15 ClearPending(BIT_EINT8_23); //清SRCPND、INTPND          #define BIT_EINT8_23 (0x1 << 5) 16 if (rEINTPEND & (1 << 8)) //清外部中断EINTPEND 17 rEINTPEND |= 1 << 8; 18  ............ 19 }

     

    其他外部中断编程参考资料:

    1.中断源的相关寄存器:

             当需要开启中断时,则需要对中断源进行相应的配置,这里主要记录常用的外部中断的配置。外部中断的配置主要是对引脚的配置,涉及的寄存器主要分为两组。

             一组是EINT0~16,涉及的寄存器主要是EXT_INT_x_CON,EXT_INT_xMASK,EXT_INT_PEND。EXT_INT_x_CON是外部中断的的配置寄存器,主要配置中断的触发方式;EXT_INT_xMASK是外部中断的屏蔽寄存器,配置引脚的中断是否屏蔽;EXT_INT_PEND是外部中断的中断未决寄存器,中断结束时必须清楚相应位,否则会持续引发中断。

             另一组的则是其余的GPIO的中断,他们复用一个中断线路,涉及的寄存器主要是GPxx_INT_CON,GPxx_INT_MASK,GPxx_INT_PEND。各寄存器功能跟第一组的类似。

     

    2.中断控制器的相关寄存器:

           VICxINTSELECT——中断类型选择寄存器,通过此寄存器选择是IRQ还是FIQ。

           VICxINTENABLE——中断使能寄存器,通过此寄存器使能相应的中断线路。

           VICxINTENCLEAR——中断使能清除寄存器(即失能),在控制器禁止某路中断在该寄存器设置。

           VICxIRQSTATUS——普通中断请求状态寄存器,记录了经VICxINTENABLE和VICxINTSELECT过滤后的IRQ中断请求状态。

           VICxFIQSTATUS——普通中断请求状态寄存器,记录了经VICxINTENABLE和VICxINTSELECT过滤后的FIQ中断请求状态。

           VICxRAMINTR——原始中断请求寄存器,记录了未经VICxINTENABLE和VICxINTSELECT过滤后的中断请求状态。

           VICxSOFINT——软件中断寄存器,通过该寄存器可使控制器产生相应线路的中断信号,该信号未经过优先级,VICxINTENABLE和VICxINTSELECT等寄存器的过滤。

           VICxSOFINTCLEAR——软中断清除寄存器,在ISR(中断服务程序)结束时要清除该寄存器相应位来清除中断,否则该中断会持续触发。

            VICxVECTADDRx——向量地址寄存器,该寄存器保存的是相应线路的ISR的地址。

            VICxVECTPRIORITYx——保存相应相应线路的优先级,有16个优先级,0的优先级最高,当多个相同优先级的线路同时请求中断时,按硬件优先级排序,同一组中断,中断好越低优先级越高,如VIC0中,EINT0优先级;如正在执行某ISR时,又一同软件优先级的但硬件优先级高的线路请求中断,此时该中断被屏蔽,要当前ISR执行完毕才可受理。

            VICxSWPRIORITYMASK——软件优先级屏蔽,可设置屏蔽相应的优先级,屏蔽后则相应优先级的中断被屏蔽。

            VICxADDRESS——保存当前活跃的中断线路的ISR地址,读取一次该寄存器意味着当前活跃的中断请求已被标志为已服务,此操作只能在进入中断处理时执行;向该寄存器写如任意值表示清楚控制器中该路中断状态,此操作只能在ISR结尾处执行。

            VICxPROTECTION——控制器保护模式配置寄存器,配置为保护模式时,中断控制器的寄存器只能在特权模式下被访问;非保护模式时,用户模式和特权模式都可以访问中断控制器的寄存器。VICxPROTECTION只能在特权模式下访问。

     

    3.处理器内核配置主要是配置CPSR寄存器,配置相应中断控制位为允许中断。

    展开全文
  • DMA寄存器设置

    千次阅读 2014-12-22 15:47:22
    1.设置DMA模式:  寄存器名:DMAMODE0  寄存器类型:DMA配置寄存器  寄存器地址:PCIBAR0+80h(LCS)  寄存器值:DMAMODE0[1:0]=11:定义DMA总线宽度为32位;  DMAMODE0[9]=0:设置DMA传输模式...

    1.设置DMA模式:

       寄存器名:DMAMODE0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+80h(LCS)

       寄存器值:DMAMODE0[1:0]=11:定义DMA总线宽度为32位;

                 DMAMODE0[9]=0:设置DMA传输模式为BLOCK模式;

                 DMAMODE0[6]=1:使能READY#输入;

                 DMAMODE0[11]=0:保持局部端地址为增量模式;   

                 DMAMODE0[8:7]=11:设置DMA支持连续突发传输;

                 DMAMODE0[10]=1:使能DMA完成中断;

                 DMAMODE0[11]=1:设置DMA完成中断触发INTA#中断。 

        

    2.设置DMA通道优先级:

       寄存器名:MARBR

       寄存器类型:局部配置寄存器 

       寄存器地址:PCIBAR0+08h

       寄存器值:MARBR[20:19]=01:设置DMA通道0的优先级最高;

    3.设置DMA传输参数:

       (1)设置PCI-E端起始地址

       寄存器名:DMAPADR0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+84h

       寄存器值:DMAPADR0[31:0]=(U32)PciBuffer.PhysicalAddr;

       (2)设置局部端起始地址  

       寄存器名:DMALADR0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+88h

       寄存器值:DMALADR0[31:0]

                 开始时寄存器值为0x1000000*4,以后每做完一次DMA写操作,该寄存器值递增2048*4;  

       (3)设置DMA长度  

       寄存器名:DMASIZ0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+8Ch

       寄存器值:DMASIZ0[22:0]=2048*4;

       (4)设置DMA传输方向                    

       寄存器名:DMADPR0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+90h

       寄存器值:DMADPR0[3]=0;(PCI-E TO LOCAL)

    4.设置DMA中断:

       寄存器名:INTCSR

       寄存器类型:Run Time寄存器 

       寄存器地址:PCIBAR0+68h

       寄存器值:INTCSR[18]=1:使能DMA Channel0中断;

    5.启动DMA传输:

       寄存器名:DMACSR0

       寄存器类型:局部配置寄存器 

       寄存器地址:PCIBAR0+A8h

       寄存器值:DMACSR0[1:0]=11:启动DMA传输;

      

    控制地址配置的一些寄存器:

    6.设置地址配置使能寄存器

       寄存器类型:用户自定义寄存器

       寄存器地址:局部总线SPACE0地址空间 0x0000000A*4

       寄存器值:enable(1:使能地址配置,0:禁止地址配置)

                 开始配置时置1,配置结束后置0; 

    7.设置地址配置RAM读使能寄存器

       寄存器类型:用户自定义寄存器

       寄存器地址:局部总线SPACE0地址空间 0x0000000D*4

       寄存器值:enable(1:使能读RAM,0:禁止读RAM) 

                  配置结束后置1;

                               

    ·                                 数据采集线程中配置的寄存器(此后的寄存器在线程中配置)

    采用DMA读的方式将数据采集进来,进行DMA传输时需要配置的寄存器(从PCI-E端进行访问,使用DMA Channel 0):

    1.设置DMA模式:

       寄存器名:DMAMODE0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+80h

       寄存器值:DMAMODE0[1:0]=11:定义DMA总线宽度为32位;

                 DMAMODE0[9]=0:设置DMA传输模式为BLOCK模式;

                 DMAMODE0[6]=1:使能READY#输入;

                 DMAMODE0[11]=1:保持局部端地址为常量;   

                 DMAMODE0[8:7]=11:设置DMA支持连续突发传输;

                 DMAMODE0[10]=1:使能DMA完成中断;

                 DMAMODE0[11]=1:设置DMA完成中断触发INTA#中断。   

    2.设置DMA通道优先级:

       寄存器名:MARBR

       寄存器类型:局部配置寄存器 

       寄存器地址:PCIBAR0+08h

       寄存器值:MARBR[20:19]=01:设置DMA通道0的优先级最高;

      

    3.设置DMA传输参数:

       (1)设置PCI-E端起始地址

       寄存器名:DMAPADR0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+84h

       寄存器值:DMAPADR0[31:0]=(U32)PciBuffer.PhysicalAddr;

       (2)设置局部端起始地址  

       寄存器名:DMALADR0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+88h

       寄存器值:DMALADR0[31:0]=0x0000000C*4;  

       (3)设置DMA长度  

       寄存器名:DMASIZ0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+8Ch

       寄存器值:DMASIZ0[22:0]=m_DMALength*4;

       (4)设置DMA传输方向                    

       寄存器名:DMADPR0

       寄存器类型:DMA配置寄存器

       寄存器地址:PCIBAR0+90h

       寄存器值:DMADPR0[3]=1;(LOCAL TO PCI-E)

    4.使能LINTI#、INTA#、DMA Channel0中断:

       寄存器名:INTCSR

       寄存器类型:Run Time寄存器 

       寄存器地址:PCIBAR0+68h

       寄存器值:INTCSR[8]=1:使能INTA#中断;

                 INTCSR[11]=1:使能LINTI#中断;

                 INTCSR[18]=1:使能DMA Channel0中断;

    5.启动DMA传输:

       寄存器名:DMACSR0

       寄存器类型:局部配置寄存器 

       寄存器地址:PCIBAR0+A8h

       寄存器值:DMACSR0[1:0]=11:启动DMA传输;  

      

                           

    控制FIFO时配置的寄存器:

    6.设置FIFO的中断使能寄存器:

       寄存器类型:用户自定义寄存器

       寄存器地址:局部总线SPACE0地址空间 0x00000001*4

       寄存器值:InterruptState=1(1:使能,0:废止) 

    7.设置FIFO的写使能寄存器:

       寄存器类型:用户自定义寄存器

       寄存器地址:局部总线SPACE0地址空间 0x0000000B*4

       寄存器值:enable=1(1:使能,0:废止) 

    ·                                 结束采集时配置的寄存器

    1.设置FIFO的写使能寄存器:

       寄存器类型:用户自定义寄存器

       寄存器地址:局部总线SPACE0地址空间 0x0000000B*4

       寄存器值:enable=0(1:使能,0:废止) 

    2.设置FIFO的中断使能寄存器:

       寄存器类型:用户自定义寄存器

       寄存器地址:局部总线SPACE0地址空间 0x00000001*4

       寄存器值:InterruptState=0(1:使能,0:废止) 

    3.废止LINTI#、INTA#、DMA Channel0中断:

       寄存器名:INTCSR

       寄存器类型:Run Time寄存器 

       寄存器地址:PCIBAR0+68h

       寄存器值:INTCSR[8]=0:废止INTA#中断;

                 INTCSR[11]=0:废止LINTI#中断;

                 INTCSR[18]=0:废止DMA Channel0中断;

    4.终止DMA传输:

       寄存器名:DMACSR0

       寄存器类型:局部配置寄存器 

       寄存器地址:PCIBAR0+A8h

       寄存器值:DMACSR0[1:0]=00:终止DMA传输; 

      

      

    !!NOTE:配置用户自定义寄存器的函数(详见PLX SDK User Manual.pdf文件,PLX6.0)为:

    PlxPci_PciBarSpaceWrite(

                PLX_DEVICE_OBJECT *pDevice, //Pointer to an open device

                U8                 BarIndex, //The index of the PCI BAR to access.  Valid values are in the range 0-5.

                U32                offset, //If bOffsetAsLocalAddr is FALSE, offset is an offset from the PCI BAR space. The mapping will not be

                //adjusted because the function assumes the space is already mapped correctly. The data range accessed

                //must not be larger than the size of the PCI-to-Local Space window.

                //If bOffsetAsLocalAddr is TRUE, offset is treated as the actual local bus base address to start reading from.

                //For 32-bit devices, this allows access to any location on the 4GB local bus space.          

                VOID              *pBuffer, //A pointer to a user supplied buffer that contains the data to write.

                U32                ByteCount,

                PLX_ACCESS_TYPE    AccessType,

                BOOLEAN            bOffsetAsLocalAddr

            );

            Description:

            This function writes from the local bus of a PCI device containing a PLX chip

            (sometimes referred to as Direct Slave Write).

    PlxPci_PciBarSpaceWrite(

                pDevice,

                0,

                REG_ADD,   

                &REG_VALUE, //A pointer to a user supplied buffer that contains the data to write.

                sizeof(REG_VALUE),

                BitSize32, // 32-bit accesses

                FALSE

            );

    其中,REG_ADD为寄存器地址、REG_VALUE为寄存器值,返回值为ApiSuccess表示配置成功!

    寄存器地址说明见AddressDevide.h文件

    !!NOTE:配置局部配置寄存器、DMA配置寄存器、Run Time寄存器的函数(详见PCI SDK Programmer's Reference Manual.pdf文件)为:

    写寄存器:

    PLX_STATUS

    PlxPci_PciRegisterWrite(

        U8  bus,

        U8  slot,

        U8  function,

        U16 REG_ADD,

        U32 REG_VALUE

        );

    其中,REG_ADD为寄存器相对于PCIBAR0的偏移地址、REG_VALUE为寄存器值,返回值为ApiSuccess表示写寄存器成功!  

    读寄存器:

    U32 REG_VALUE = PlxPci_PciRegisterRead(

        U8          bus,

        U8          slot,

        U8          function,

        U16         REG_ADD,

        PLX_STATUS * pStatus

        );

    其中,REG_ADD为寄存器相对于PCIBAR0的偏移地址、REG_VALUE为返回的寄存器值

     

    ·                                 寄存器的配置是从“开始采集”开始依次介绍的(参见应用程序),配置寄存器的API函数见上页的NOTE!

    一、采样初始化时配置的寄存器

    1.设置DMA长度寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x0000000F*4

      寄存器值:m_DMALength(最大为2048)

     

    2.设置采样模式寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000005*4

      寄存器值:m_SampleMode(0表示连续采样,1表示局部采样)

      !!note:若采用离散采样模式,还需配置采样地址,采用DMA写的方式写入RAM,涉及的寄存器配置单独说明,见二

     

    3.设置采样起始地址寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000006*4

      寄存器值:m_StartAddress

    4.设置采样终止地址寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000007*4

      寄存器值:m_EndAddress

     

    5.设置计数器清零寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000003*4

      寄存器值:SampleParamSet(高电平有效)

    6.设置计数时间单位寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000004*4

      寄存器值:SampleParamSet

    7.设置计数器控制寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000002*4

      寄存器值:SampleParamSet(1:启动计数器,0:终止计数器)

     

    8.设置地址总线宽度寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000008*4

      寄存器值:m_AddressBusWidth

     

    9.设置数据总线宽度寄存器:

      寄存器类型:用户自定义寄存器

      寄存器地址:局部总线SPACE0地址空间 0x00000009*4

      寄存器值:m_DataBusWidth

    展开全文
  • OV7725 寄存器设置

    2011-12-23 10:51:12
    OV7725 详细寄存器设置.已成功用于项目.欢迎下载!
  • IMX185datasheet + IMX185_WDR寄存器设置
  • 寄存器设置IO方向

    千次阅读 2019-03-21 15:59:20
    每个IO口有两个寄存器CRH和CRL来设置IO口 每个引脚占用寄存器的4个位,32位的寄存器即控制8个引脚 设置哪个引脚将其对应的4个位全置0即可 其中CRH寄存器用来设置IO口高8位的引脚(如:PA8–PA15),CRL寄存器用来设置...
    每个IO口有两个寄存器CRH和CRL来设置IO口
    

    每个引脚占用寄存器的4个位,32位的寄存器即控制8个引脚
    设置哪个引脚将其对应的4个位全置0即可

    其中CRH寄存器用来设置IO口高8位的引脚(如:PA8–PA15),CRL寄存器用来设置IO口低8位的引脚(如:PA0–PA7)

    PA0为例设置寄存器,总共需要两步,首先设置引脚,然后设置方向及模式

    GPIOA->CRL&=0xFFFFFFF0; //设置引脚为PA0
    GPIOA->CRL|=8<<0; //设置引脚的方向与模式
    

    设置当前引脚的4个位即设置方向与模式
    其中:

    1:0位设置方向
    0 0 :输入
    0 1 :输出(最大速度10Mhz)
    1 0 :输出(最大速度20Mhz)
    1 1 :输出(最大速度50Mhz)
    
    3:2为设置模式
    当方向为输入时:
    	0 0:模拟输入
    	0 1:浮空输入
    	1 0:上/下拉输入
    	1 1:保留
    当方向为输出时:
    	0 0:通用推挽输出
    	0 1:通用开漏输出
    	1 0:复用推挽输出
    	1 1:复用开漏输出
    

    那么开头的例子就是设置PA0引脚为上下拉输入

    OK再举个例子
    设置PA2引脚为通用开漏输出

    //首先设置引脚
    GPIOA->CRL&=0xFFFFF0FF //将2号IO口对应的4个位全置0
    //其次设置方向与模式
    GPIOA->CRL|=7<<8 //通用开漏输出为0111(速度可自选也可以是0110),左移8位即设置到2号IO口
    
    展开全文
  • 一、开发环境 开发软件:STVD 芯片型号:stm8s103 硬件接口:I2C(主模式) 二、寄存器主要用到的功能(按用户手册的顺序) 三、读写函数代码 四、调试心得
  • 起因:在使用stm32单片机can通讯时,参考手册的介绍与寄存器封装有差别,不好理解怎么去设置寄存器。在参考一些代码时,对怎么去设置过滤器还是难以理解。 解决:  在寄存器封装库中,我们发现CAN过滤器设置...
  • 摄像头旋转90度 + ov3640寄存器设置

    热门讨论 2012-06-27 18:23:14
    适用于wince 6.0 中摄像头出图在LCD上偏转了90° 或者270度 direct show 编写的一个TransformFilter filter软件旋转过来的, 外带OV3640的寄存器设置
  • 300万 OV3640 寄存器设置

    热门讨论 2012-06-20 15:05:00
    包括OV3640初始化 预览 拍照的寄存器设置
  • MCS-51单片机具有一个全双工的...它可以作为UART(通用异步接收和发送器)使用,也可以作为同步的移位寄存器使用。 1. 数据缓冲寄存器SBUF  SBUF是可以直接寻址的专用寄存器。物理上,它对应着两个寄
  • Si4432、si4431+寄存器设置_RevV-v23中文版,433频率设置寄存器快捷计算方式,公式已嵌套完成

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 271,245
精华内容 108,498
关键字:

寄存器设置