ARM硬件结构及应用市公开课一等奖省赛课获奖课件_第1页
ARM硬件结构及应用市公开课一等奖省赛课获奖课件_第2页
ARM硬件结构及应用市公开课一等奖省赛课获奖课件_第3页
ARM硬件结构及应用市公开课一等奖省赛课获奖课件_第4页
ARM硬件结构及应用市公开课一等奖省赛课获奖课件_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.LPC和STM32介绍2.STM32固件库3.系统控制模块4.引脚连接模块5.GPIO操作6.向量中止控制器7.外中止输入LPC和STM32系列ARM硬件结构与应用8.定时器原理及应用9.SPI接口及应用10.UART接口及应用11.A/D转换器及应用12.看门狗13.PWM原理与应用14.实时时钟ARM硬件结构及应用第1页7外部中止输入概述LPC系列ARM含有4路外部中止,能够设置为2种类型:边缘触发:上升沿触发下降沿触发电平触发:高电平触发低电平触发ARM硬件结构及应用第2页中止信号下降沿触发7外部中止输入边缘触发中止下降沿触发类型中止请求和去除时序。T1T2T1时刻,中止信号有下降沿产生,中止控制器向CPU发出中止请求。1T2时刻,CPU执行完成中止控制器中止服务程序,去除中止,中止信号回复到高电平。2ARM硬件结构及应用第3页中止信号低电平触发7外部中止输入电平触发中止低电平触发类型中止请求和去除时序。T1T3T1时刻,中止信号开始由高电平转为低电平。1T2时刻,中止控制器确认中止信号是低电平后,将向CUP发出中止请求。2T2T3时刻,CPU执行完成中止控制器中止服务程序,去除中止,中止信号回复到高电平。3ARM硬件结构及应用第4页中止源1(WDT)...中止源14(EINT0)中止源15(EINT1)...中止源17(EINT3)ARM处理器核向量中断控制器IRQFIQ7外部中止输入外部中止源LPC系列微控制器几乎全部外设部件都能够产生中止。其中外部中止含有4个独立中止输入。ARM硬件结构及应用第5页系统控制模块功效汇总名称描述访问复位值*地址EXTINT外部中止标志存放器R/W00xE01FC140EXTWAKE外部中止唤醒存放器R/W00xE01FC144EXTMODE外部中止方式存放器R/W00xE01FC148EXTPOLAR外部中止极性存放器R/W00xE01FC14C*:复位值仅指已使用位中保留数据,不包含保留位内容。存放器汇总ARM硬件结构及应用第6页管脚连接控制外部中止极性控制外部中止方式控制掉电唤醒控制中止标志PINSELxEXTPOLAREXTMODEEXTINTEXTWAKECPU其它部件12347外部中止输入存放器汇总能够经过设置PINSELx存放器选择对应引脚为外部中止输入引脚。1能够经过设置EXTPOLAR和EXTMODE确定外部中止触发信号。2能够控制把CPU从掉电模式唤醒。3有效中止信号设置中止标志。4ARM硬件结构及应用第7页外部中止极性控制外部中止方式控制掉电唤醒控制中止标志EXTPOLAREXTMODEEXTINTEXTWAKE管脚连接控制PINSELxCPU其它部件存放器汇总中止相关存放器EXTINT——EINT07:40EINT11EINT22EINT33

若引脚上出现了符合要求信号,EXTINT存放器中对应中止标志将被置位。向该存放器EINT0~EINT3位写入1,可将其清零。外部中止标志存放器(EXTINT):注意:在电平触发方式下,去除中止标志只有在引脚处于无效状态时才可实现。比如设置为低电平中止,则只有在中止引脚恢复为高电平后才能去除中止标志。

设置该存放器允许对应外部中止将处理器从掉电模式唤醒。实现掉电唤醒不需要在向量中止控制器(VIC)中使能对应中止。该存放器低四位(EXTWAKE[3:0])分别对应外部中止3~0。外部中止唤醒存放器(EXTWAKE):控制存放器EXTWAKE——EXTWAKE07:40EXTWAKE11EXTWAKE22EXTWAKE33外部中止方式控制存放器(EXTMODE):该存放器控制着外部中止输入信号有效触发方式,低四位分别对应外部中止3~0。对应位为0时,电平触发外部中止;对应位为1时,边缘触发外部中止。控制存放器EXTMODE——EXTMODE07:40EXTMODE11EXTMODE22EXTMODE33外部中止极性控制存放器(EXTPOLAR):电平触发方式下:对应位为0时,低电平触发外部中止;对应位为1时,高电平触发外部中止。边缘触发方式下:对应位为0时,下降沿触发外部中止;对应位为1时,上升沿触发中止。控制存放器EXTPOLAR——EXTPOLAR07:40EXTPOLAR11EXTPOLAR22EXTPOLAR33设置说明对应位设置值信号波形极性控制存放器(EXTPOLAR)方式控制存放器(EXTMODE)低电平触发0(低)0(电平)高电平触发1(高)0(电平)下降沿触发0(下降)1(边缘)上升沿触发1(上升)1(边缘)中止信号波形与设置方式ARM硬件结构及应用第8页7外部中止输入外部中止引脚设置LPC系列芯片中,外部中止输入功效引脚绝大多数同时还作为通信上一个功效引脚,这么处理器能够经过外部中止唤醒,之后引脚设为通讯端口。外部中止名称引脚名该引脚其它功效外部中止0(EINT0)P0.1RXD0P0.16外部中止1(EINT1)P0.3SDA0P0.14DCD外部中止2(EINT2)P0.7SSEL0P0.15RI外部中止3(EINT3)P0.9RXD1P0.20SSEL1P0.30LPC系列芯片允许多个引脚同时作为一个外部中止输入引脚。依据其方式位和极性位不一样,外部中止逻辑处理以下:

低电平触发方式:作为EINT功效全部引脚状态相与后作为输入信号;高电平触发方式:作为EINT功效全部引脚状态相或后作为输入信号;边缘触发方式:只使用GPIO端口号最低那个引脚,而且与极性设置无关。在实际应用中注意点:假如要产生外部中止,除了引脚连接模块设置,还需设置VIC模块,不然外部中止只能反应在EXTINT存放器中;要使器件进入掉电模式并经过外部中止唤醒,软件应该正确设置引脚外部中止功效,再进入掉电模式。ARM硬件结构及应用第9页7外部中止输入外部中止与VIC关系通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[14]VICIntEnable[14]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。外部中止0位于VIC通道14,中止使能存放器VICIntEnable[14]用来控制通道14使能:当VICIntEnable[14]=0时,通道14中止禁止

ARM硬件结构及应用第10页7外部中止输入外部中止与VIC关系通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[14]VICIntEnable[14]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。外部中止0位于VIC通道14,中止使能存放器VICIntEnable[14]用来控制通道14使能:当VICIntEnable[14]=0时,通道14中止禁止当VICIntEnable[14]=1时,通道14中止使能ARM硬件结构及应用第11页通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[14]VICIntEnable[14]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配7外部中止输入外部中止与VIC关系注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。外部中止0位于VIC通道14,中止选择存放器VICIntSelect[14]用来选择通道14中止类型:当VICIntSelect[14]=0时,通道14分配为IRQ中止

ARM硬件结构及应用第12页7外部中止输入外部中止与VIC关系通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[14]VICIntEnable[14]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。外部中止0位于VIC通道14,中止选择存放器VICIntSelect[14]用来选择通道14中止类型:当VICIntSelect[14]=0时,通道14分配为IRQ中止当VICIntSelect[14]=1时,通道14分配为FIQ中止ARM硬件结构及应用第13页7外部中止输入外部中止设置LPC系列ARM电平中止能够设置为电平中止和边缘中止。当EXTMODE[0]=0时,外部中止0设置为电平触发。当EXTMODE[0]=1时,外部中止0设置为边缘触发。注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。低电平高电平EINT00EXTMODE[0]=0EXTPOLAR[0]高电平中止低电平中止上升沿中止下降沿中止边缘中止VIC外部中断001101电平中止ARM硬件结构及应用第14页7外部中止输入外部中止设置LPC系列ARM电平中止能够设置为电平中止和边缘中止。当EXTMODE[0]=0时,外部中止0设置为电平触发。当EXTMODE[0]=1时,外部中止0设置为边缘触发。注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。EINT00EXTMODE[0]=1EXTPOLAR[0]高电平中止低电平中止上升沿中止下降沿中止电平中止VIC外部中断001101下降沿上升沿边缘中止ARM硬件结构及应用第15页7外部中止输入电平中止设置低电平注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。LPC系列ARM电平中止能够设置为高电平触发和低电平触发。当EXTPOLAR[0]=0时,外部中止0设置为低电平触发。当EXTPOLAR[0]=1时,外部中止0设置为高电平触发。EINT00EXTMODE[0]=0EXTPOLAR[0]=0高电平中止低电平中止上升沿中止下降沿中止电平中止边缘中止VIC外部中断001101ARM硬件结构及应用第16页7外部中止输入电平中止设置EINT00EXTMODE[0]=0EXTPOLAR[0]=1高电平中止低电平中止上升沿中止下降沿中止电平中止边缘中止VIC外部中断001101注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。LPC系列ARM电平中止能够设置为高电平触发和低电平触发。当EXTPOLAR[0]=0时,外部中止0设置为低电平触发。当EXTPOLAR[0]=1时,外部中止0设置为高电平触发。高电平ARM硬件结构及应用第17页7外部中止输入边缘中止设置EINT00EXTMODE[0]=1EXTPOLAR[0]=0高电平中止低电平中止上升沿中止下降沿中止电平中止边缘中止VIC外部中断001101注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。LPC系列ARM边缘中止能够设置为上升沿触发和下降沿触发。当EXTPOLAR[0]=0时,外部中止0设置为下降沿触发。当EXTPOLAR[0]=1时,外部中止0设置为上升沿触发。下降沿ARM硬件结构及应用第18页7外部中止输入边缘中止设置EINT00EXTMODE[0]=0EXTPOLAR[0]=1高电平中止低电平中止上升沿中止下降沿中止电平中止边缘中止VIC外部中断001101注意:这里仅以EINT0为例来进行讲解,EINT1~EINT3与之类似,此处不再重复。LPC系列ARM边缘中止能够设置为上升沿触发和下降沿触发。当EXTPOLAR[0]=0时,外部中止0设置为下降沿触发。当EXTPOLAR[0]=1时,外部中止0设置为上升沿触发。上升沿ARM硬件结构及应用第19页7外部中止输入外部中止设置——中止标志EXTINT[0]EXTINT[1]EXTINT[2]EXTINT[3]触发外部中止0触发外部中止1触发外部中止2触发外部中止3外部中止标志存放器EXTINT注意:外部中止标志写“1”清零。ARM硬件结构及应用第20页7外部中止输入外部中止应用示例初始化EINT0为电平中止:初始化EINT0为下降沿中止:去除全部外部中止标志:PINSEL1=(PINSEL1&0xFFFFFFFC)|0x01;EXTMODE=EXTMODE&0x0E;EXTINT=0x0F;PINSEL1=(PINSEL1&0xFFFFFFFC)|0x01;EXTMODE=EXTMODE|0x01;EXTPOLAR=EXTPOLAR&0x0E;ARM硬件结构及应用第21页7STM32外部中止特征ARM硬件结构及应用第22页7STM32外部中止ARM硬件结构及应用第23页7STM32外部中止作为外部中止输入,有以下几个步骤:

1)初始化IO口为输入。2)开启IO口复用时钟,设置IO口与中止线映射关系。开启与该IO口相正确线上中止/事件,设置触发条件。3)配置中止分组(NVIC),并使能中止。4)编写中止服务函数。ARM硬件结构及应用第24页7STM32外部中止1配置GPIO针脚作为外部中止触发事件

1、选择IO针脚GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;注意,假如针脚是端口4号针脚,配置中止一定是EXTI42、配置针脚为输入GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;3、初始化针脚GPIO_Init(GPIOD,&GPIO_InitStructure);ARM硬件结构及应用第25页7STM32外部中止2配置EXTI线,使中止线和IO针脚线连接上1、将EXTI线连接到IO端口上将EXTI线4连接到端口GPIOD第4个针脚上

GPIO_EXTILineConfig(GPIO_PortSourceGPIOD,GPIO_PinSource4);2、配置中止边缘

/*配置EXTI线0上出现下降沿,则产生中止*/

EXTI_InitStructure.EXTI_Line=EXTI_Line4;

注意:假如配置4号针脚,那么EXTI_Line4是必须

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿触发

EXTI_InitStructure.EXTI_LineCmd=ENABLE;

//中止线使能

EXTI_Init(&EXTI_InitStructure);

//初始化中止

EXTI_GenerateSWInterrupt(EXTI_Line4);

//EXTI_Line4中止允许ARM硬件结构及应用第26页7STM32外部中止3配置中止NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//设置中止优先级/*允许EXTI4中止*/NVIC_InitStructure.NVIC_IRQChannel=EXTI4_IRQChannel;//中止通道NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;//强占优先级NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;//次优先级NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//通道中止使能NVIC_Init(&NVIC_InitStructure);

//初始化中止ARM硬件结构及应用第27页7STM32外部中止4.中止服务程序编写voidEXTI3_IRQHandler(void){ GPIO_SetBits(GPIOD,GPIO_Pin_3); EXTI_ClearITPendingBit(EXTI_Line3);}

voidEXTI9_5_IRQHandler(void){ GPIO_SetBits(GPIOB,GPIO_Pin_5);

EXTI_ClearITPendingBit(EXTI_Line5);}ARM硬件结构及应用第28页8定时器LPC定时器特征32位可编程预分频器;4路捕捉通道;4个匹配存放器;4个匹配输出通道。ARM硬件结构及应用第29页预分频器(PR、PC)定时器、计数器(TC)PCLK使能0x00000000定时器控制存放器(TCR)复位捕捉存放器0(CR0)捕捉存放器1(CR1)捕捉存放器2(CR2)捕捉存放器3(CR3)捕捉控制存放器(CCR)捕捉功效匹配功效匹配控制存放器(MCR)MAT[3:0]CAP[3:0]中止标志存放器(IR)比较器定时器计数值匹配存放器0(MR0)匹配存放器1(MR1)匹配存放器2(MR2)匹配存放器3(MR3)外部匹配存放器(EMR)定时器结构图ARM硬件结构及应用第30页8定时器功效介绍预分频器

捕捉功效

匹配功效ARM硬件结构及应用第31页8定时器分频器结构描述ARM硬件结构及应用第32页名称描述访问复位值PR预分频控制存放器。用于设定预分频值,为32位存放器。读写0PC预分频计数器。为32位计数器,计数频率为PCLK,当计数值等于预分频计数器值时,TC计数器加1。读写0TC定时器计数器。为32位计数器,计数频率为PCLK经过预分频计数器后频率值。读写0分频器存放器描述ARM硬件结构及应用第33页匹配功效匹配控制存放器(MCR)MAT[3:0]比较器定时器计数值匹配存放器0(MR0)匹配存放器1(MR1)匹配存放器2(MR2)匹配存放器3(MR3)外部匹配存放器(EMR)名称描述访问复位值MCR匹配控制存放器,用于控制在匹配时是否产生中止或复位TC读写0MR0匹配存放器0,经过MCR存放器能够设置匹配发生时动作读写0MR1匹配存放器1,经过MCR存放器能够设置匹配发生时动作读写0MR2匹配存放器2,经过MCR存放器能够设置匹配发生时动作读写0MR3匹配存放器3,经过MCR存放器能够设置匹配发生时动作读写0EMR外部匹配存放器,EMR控制外部匹配管脚MATx.0~MATx.3读写0匹配功效ARM硬件结构及应用第34页匹配功效存放器描述-匹配控制存放器匹配控制存放器用于控制在发生匹配时定时器所执行操作。位功效描述复位值0中止(MR0)为1时,MR0与TC值匹配将产生中止。为0时禁止。01复位(MR0)为1时,MR0与TC值匹配将使TC复位。为0时禁止。02停顿(MR0)为1时,MR0与TC值匹配将清零TCRbit0位,使TC和PC停顿。为0时该特征被禁止。05:3MR1与匹配0(MR0)对应位功效相同(略)08:6MR2011:9MR30匹配功效匹配控制存放器(MCR)MAT[3:0]比较器定时器计数值匹配存放器0(MR0)匹配存放器1(MR1)匹配存放器2(MR2)匹配存放器3(MR3)外部匹配存放器(EMR)ARM硬件结构及应用第35页匹配存放器(MR0~MR3)值与定时器计数值相比较,当两个值相等时自动触发在MCR存放器中设置动作。位31:0复位值功效匹配值0匹配功效匹配控制存放器(MCR)MAT[3:0]比较器定时器计数值匹配存放器0(MR0)匹配存放器1(MR1)匹配存放器2(MR2)匹配存放器3(MR3)外部匹配存放器(EMR)匹配功效存放器描述-匹配存放器ARM硬件结构及应用第36页

外部匹配存放器提供外部匹配管脚MATn.0~MATn.3(n为0或1)控制和状态。匹配功效匹配控制存放器(MCR)MAT[3:0]比较器定时器计数值匹配存放器0(MR0)匹配存放器1(MR1)匹配存放器2(MR2)匹配存放器3(MR3)外部匹配存放器(EMR)匹配功效存放器描述-外部匹配存放器ARM硬件结构及应用第37页管脚名称管脚方向管脚描述MAT0.3~MAT0.0MAT1.3~MAT1.0输出外部匹配输出0/1。当匹配存放器0/1(MR3:0)等于定时器计数器(TC)时,该输出可翻转、变为低电平、变为高电平或不变。外部匹配存放器(EMR)控制该输出功效。可选择多个管脚并行用作匹配输出功效。比如,同时选择2个管脚并行提供MAT1.3功效。定时器匹配输出引脚描述信号输出匹配控制存放器Tx定时器匹配存放器=当定时器值等于预设匹配值时,从引脚输出特定信号信号输出=ARM硬件结构及应用第38页位功效描述复位值0外部匹配0反应对应外部匹配状态,而不论是否连接到管脚。发生匹配时该位动作由EMR中对应控制位决定。01外部匹配102外部匹配203外部匹配305:4外部匹配控制0决定对应外部匹配功效。00:不执行任何动作;01:将对应外部匹配输出设置为0;10:将对应外部匹配输出设置为1;11:使对应外部匹配输出翻转。07:6外部匹配控制109:8外部匹配控制2011:10外部匹配控制30匹配功效存放器描述-外部匹配存放器ARM硬件结构及应用第39页捕捉存放器0(CR0)捕捉存放器1(CR1)捕捉存放器2(CR2)捕捉存放器3(CR3)捕捉控制存放器(CCR)捕捉功效CAP[3:0]定时器计数值名称描述访问复位值CCR捕捉控制存放器,用于设置捕捉信号触发特征,以及捕捉发生时是否产生中止。读写0CR0捕捉存放器0,在捕捉0引脚上产生捕捉时间时,CR0装载TC值。只读0CR1功效同上。只读0CR3功效同上。只读0CR3功效同上。只读0捕捉功效ARM硬件结构及应用第40页捕捉存放器0(CR0)捕捉存放器1(CR1)捕捉存放器2(CR2)捕捉存放器3(CR3)捕捉控制存放器(CCR)捕捉功效CAP[3:0]定时器计数值捕捉功效存放器描述-捕捉控制存放器在发生捕捉事件时,捕捉控制存放器用于控制是否将定时器计数值装入存放器。同时还能够设置捕捉信号特征。ARM硬件结构及应用第41页信号过滤捕捉控制存放器Tx定时器捕捉存放器管脚名称管脚方向管脚描述CAP0.3~CAP0.0CPA1.3~CAP1.0输入捕捉信号,用来捕捉管脚跳变,可配置为将定时器值装入一个捕捉存放器,并可选择产生一个中止。定时器捕捉引脚描述假如输入信号满足设定要求,将触发捕捉动作ARM硬件结构及应用第42页位功效描述复位值0CAPn.0上升沿捕捉为1时,CAPn.0引脚上0到1跳变将造成TC内容装入CR0。为0时,该特征被禁止。01CAPn.1下降沿捕捉为1时,CAPn.0引脚上1到0跳变将造成TC内容装入CR0。为0时,该特征被禁止。02CAPn.0事件中止为1时,CAPn.0捕捉事件将产生一个中止。为0时该特征被禁止。05:3CAPn.1与CAPn.0对应位功效相同(略)08:6CAPn.2与CAPn.0对应位功效相同(略)011:9CAPn.3与CAPn.0对应位功效相同(略)0捕捉功效存放器描述-捕捉控制存放器ARM硬件结构及应用第43页

当发生捕捉事件时,可将定时器计数值装入该存放器。位31:0复位值功效捕捉值0捕捉功效存放器描述-捕捉存放器捕捉存放器0(CR0)捕捉存放器1(CR1)捕捉存放器2(CR2)捕捉存放器3(CR3)捕捉控制存放器(CCR)捕捉功效CAP[3:0]定时器计数值ARM硬件结构及应用第44页捕捉功效注意事项当选择多个管脚作捕捉功效时,只有序号最低那一个管脚是有效。例,假如P0.2与P0.22均设置为CAP0.0,那么只有P0.2是有效,P0.22捕捉功效无效。ARM硬件结构及应用第45页

定时器控制存放器TCR用于控制订时器计数器操作。TCR功效描述复位值0计数器使能1:定时器计数器和预分频计数器使能计数;0:定时器计数器和预分频计数器停顿计数。01计数器复位为1时定时器计数器和预分频计数器在PCLK下一个上升沿同时复位。计数器在TCRbit1恢复为0之前保持复位状态。0预分频器(PR、PC)定时器、计数器(TC)PCLK使能0x00000000定时器控制存放器(TCR)复位控制存放器-TCRARM硬件结构及应用第46页中止标志存放器(IR)捕捉功效匹配功效中止存放器包含4个位用于匹配中止,另外4个位用于捕捉中止。假如有中止产生,IR中对应位会置位。向对应IR位写入1会复位中止,写入0无效。位功效描述位功效描述0MR0中止匹配0中止4CR0中止捕捉0中止1MR1中止匹配1中止5CR1中止捕捉1中止2MR2中止匹配2中止6CR2中止捕捉2中止3MR3中止匹配3中止7CR3中止捕捉3中止中止标志存放器-IRARM硬件结构及应用第47页定时器中止——定时器与VIC关系8定时器通道4定时器0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[4]VICIntEnable[4]IRQFIQ通道5定时器1VICIntSelect[5]VICIntEnable[5]IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配TIMER0、TIMER1分别位于VIC通道4和通道5。中止使能存放器VICIntEnableBit4和Bit5分别用来控制通道4和通道5使能。ARM硬件结构及应用第48页定时器中止TIMER0与VIC关系当VICIntEnable[4]=0时,通道4中止禁止;通道4TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[5]VICIntEnable[4]=0IRQFIQ通道5TIMER1VICIntSelect[5]VICIntEnable[5]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配ARM硬件结构及应用第49页定时器中止TIMER0与VIC关系当VICIntEnable[4]=0时,通道4中止禁止;通道0TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[4]VICIntEnable[4]=1IRQFIQ通道1TIMER1VICIntSelect[5]VICIntEnable[5]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配当VICIntEnable[4]=1时,通道4中止使能。ARM硬件结构及应用第50页定时器中止TIMER1与VIC关系当VICIntEnable[5]=0时,通道5中止禁止;通道4TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[44]VICIntEnable[4]=0IRQFIQ通道5TIMER1VICIntSelect[5]VICIntEnable[5]=0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配ARM硬件结构及应用第51页定时器中止TIMER1与VIC关系当VICIntEnable[5]=0时,通道5中止禁止;通道4TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect[4]VICIntEnable[4]=0IRQFIQ通道5TIMER1VICIntSelect[5]VICIntEnable[5]=1IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配当VICIntEnable[5]=1时,通道5中止使能。ARM硬件结构及应用第52页定时器中止匹配中止LPC系列ARM定时器计数溢出时不会产生中止,不过匹配时能够产生中止。每个定时器都含有4个匹配存放器(MR0~MR3),能够用来存放匹配值。当计数值=匹配值时,产生匹配中止。ARM硬件结构及应用第53页定时器中止匹配中止匹配控制存放器控制着匹配中止使能,以定时器0匹配通道0为例:T0MCR[0]=0定时器0计数值TC=定时器0匹配值MR0T0MCR[3]定时器0计数值TC=定时器0匹配值MR1T0IR[0]T0IR[1]匹配中止标志当T0TC=T0MR0时,若T0MCR[0]=0,则匹配中止禁止;ARM硬件结构及应用第54页定时器中止匹配中止匹配控制存放器控制着匹配中止使能,以定时器0匹配通道0为例:当T0TC=T0MR0时,若T0MCR[0]=0,则匹配中止禁止;当T0TC=T0MR0时,若T0MCR[0]=1,则匹配中止使能。T0MCR[0]=1定时器0计数值TC=定时器0匹配值MR0T0MCR[3]定时器0计数值TC=定时器0匹配值MR1T0IR[0]T0IR[1]匹配中止标志ARM硬件结构及应用第55页定时器中止捕捉中止当定时器捕捉引脚CAP上出现特定捕捉信号时,能够产生中止。以CAP0.0为例:T0CCR[0]T0CCR[1]CAP0.0T0CCR[2]捕捉中止捕获上升沿下降沿ARM硬件结构及应用第56页定时器中止捕捉中止当定时器捕捉引脚CAP上出现特定捕捉信号时,能够产生中止。以CAP0.0为例:T0CCR[0]T0CCR[1]CAP0.0T0CCR[2]捕捉中止捕获上升沿下降沿若T0CCR[0]=1,捕捉引脚CAP0.0上出现“上升沿”信号时,发生捕捉事件;ARM硬件结构及应用第57页定时器中止捕捉中止当定时器捕捉引脚CAP上出现特定捕捉信号时,能够产生中止。以CAP0.0为例:T0CCR[0]T0CCR[1]CAP0.0T0CCR[2]捕捉中止捕获上升沿下降沿若T0CCR[0]=1,捕捉引脚CAP0.0上出现“上升沿”信号时,发生捕捉事件;若T0CCR[1]=1,捕捉引脚CAP0.0上出现“下降沿”信号时,发生捕捉事件;ARM硬件结构及应用第58页定时器中止捕捉中止捕捉控制存放器CCR控制捕捉中止使能。以CAP0.0为例,发生捕捉事件时,T0CCR[2]控制着捕捉中止使能:T0CCR[0]T0CCR[1]CAP0.0T0CCR[2]捕捉中止捕获上升沿下降沿当T0CCR[2]=0时,捕捉中止禁止;ARM硬件结构及应用第59页定时器中止捕捉中止捕捉控制存放器CCR控制捕捉中止使能。以CAP0.0为例,发生捕捉事件时,T0CCR[2]控制着捕捉中止使能:T0CCR[0]T0CCR[1]CAP0.0T0CCR[2]捕捉中止捕获上升沿下降沿当T0CCR[2]=0时,捕捉中止禁止;当T0CCR[2]=1时,捕捉中止使能。ARM硬件结构及应用第60页8定时器使用定时器注意关键点定时计数器(TC)本身不能产生中止,只有与匹配存放器发生匹配后才能引发中止事件;在定时器匹配发生后,能够不停顿定时器工作,而动态修改匹配存放器值;定时器使用匹配功效同时,还能够使用捕捉功效,而无须分时使用;

定时器计数时钟频率=Fpclk/(PR+1)ARM硬件结构及应用第61页定时器操作示例定时器设置为匹配时复位计数器并产生中止。预分频设置为2,匹配存放器设置为6。在发生匹配定时器周期结束时,定时器计数值复位。这么就使匹配值含有完整长度周期。PR=2,MRx=6,匹配时使能中止和复位预分频计数器计数频率为PCLK定时器计数器计数频率为PCLK/3最终一个周期复位定时器计数器产生匹配中止ARM硬件结构及应用第62页定时器操作示例操作流程计算定时器计数频率设置匹配值及工作模式设置捕捉方式设置定时器中止VIC开启定时器TCRARM硬件结构及应用第63页定时器操作示例-定时器0初始化操作流程计算定时器计数频率设置匹配值及工作模式设置捕捉方式设置定时器中止VIC开启定时器TCR操作流程计算定时器计数频率设置匹配值及工作模式设置捕捉方式设置定时器中止VIC开启定时器TCRVoidTime0Init(void){T0TC=0;T0PR=0;T0MCR=0x03;T0MR0=Fpclk/10;T0TCR=0x01;}C代码:定时器设置为0设置预分频值设置匹配模式,复位并中止设置匹配值,0.1S开启定时器0ARM硬件结构及应用第64页LPC定时器操作示例-用定时器测量脉冲宽度...T0TC=0;T0PR=0;while((IO0PIN&0x01)!=0);T0TCR=0x01;while((IO0PIN&0x01)==0);T0TCR=0x00;time=T0TC;...C代码:定时器设置为0设置预分频值等候引脚电平变低开启定时器0等候引脚电平变高关闭定时器0读取定时器值,即为脉宽P0.0tVtimeARM硬件结构及应用第65页定时器操作示例-匹配输出VoidMATOut(void){PINSEL0=0x00000800;T0TC=0;T0PR=0;T0MCR=0x02;T0EMR=0xC0;T0MR1=5000;T0TCR=0x01;}C代码:定时器设置为0设置预分频值设置匹配后复位TC设置匹配后MAT0.1输出翻转输出频率周期控制开启定时器0设置引脚连接模块

将引脚P0.5设置为输出50%方波,程序设置了MR1匹配后复位定时器,而且MAT0.1输出电平翻转。ARM硬件结构及应用第66页定时器操作示例-定时器捕捉VoidTimeCAP(void){PINSEL0=0x20;T0PR=0;T0CCR=0x02;T0TC=0;T0TCR=0x01;}C代码:设置预分频值为0设置为下降沿捕捉清零TC开启定时器设置引脚连接模块示例使用定时器对P0.2引脚信号进行捕捉,并设置为下降沿捕捉。当有捕捉事件产生时自动把定时器当前值装载到T0CR0存放器中。ARM硬件结构及应用第67页STM32定时器/计数器

STM32中一共有11个定时器,其中2个高级控制订时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。基本定时器:TIM1TIM8TIM2TIM3TIM4TIM5TIM6TIM7。

其中TIM1和TIM8是能够产生3对PWM互补输出高级登时其,惯用于三相电机驱动,时钟由APB2输出产生。TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器,其时钟由APB1输出产生。ARM硬件结构及应用第68页STM32定时器使用定时频率计算:f=(72M/(TIM_Prescaler+1)*(1+TIM_Period))

;定时器基本设置:2、设置预分频数,得到CK_CNT,

TIM_TimeBaseStructure.TIM_Prescaler

=

7199;

CK_CNT计数频率=72M/(7199+1)=10K;3、设置自动重装载存放器,当计数值到达这个存放器锁存数值时,溢出产生事件

TIM_TimeBaseStructure.TIM_Period

=

9999;

10K/(9999+1)=1HZ

,也就是1S溢出一次;1、RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);ARM硬件结构及应用第69页STM32定时器使用4、设置计数模式TIM_TimeBaseStructure.TIM_CounterMode

=

TIM_CounterMode_Up;

从0计数到ARR产生溢出事件;5、

设置时间分割值

TIM_TimeBaseStructure.TIM_ClockDivision

=

TIM_CKD_DIV1

;

6、

初始化定时器2

TIM_TimeBaseInit(TIM2,

&TIM_TimeBaseStructure);7、清楚标志

TIM_CleaRFlag(TIM2,

TIM_FLAG_Update);8、打开定时器

TIM_Cmd(TIM2,

ENABLE);ARM硬件结构及应用第70页STM32定时器使用9、在主函数中查询TIM_FLAG_Update标志置位了就去除标志:

if(TIM_GetFlagStatus

(TIM2,TIM_FLAG_Update

)!=RESET)

{TIM_ClearFlag

(TIM2,TIM_FLAG_Update);if(

GPIO_ReadOutputDataBit(GPIOA,

GPIO_Pin_8)==0)GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_SET);

else

GPIO_WriteBit(GPIOA,GPIO_Pin_8,Bit_RESET);

}ARM硬件结构及应用第71页STM32定时器使用利用中止方法:步骤1-6如同上,增加中止设置7、打开中止

溢出中止

TIM_ITConfig(TIM2,

TIM_IT_Update,

ENABLE);

8、

打开定时器TIM_Cmd(TIM2,

ENABLE);ARM硬件结构及应用第72页STM32定时器使用中止配置:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1)

;NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);

ARM硬件结构及应用第73页STM32定时器使用编写中止服务函数void

TIM2_IRQHandler(void){if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET){

TIM_ClearITPendingBit(TIM2,TIM_IT_Update);

GPIO_WriteBit(GPIOD,GPIO_Pin_2,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOD,GPIO_Pin_2)));

GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_8)));

}}

ARM硬件结构及应用第74页STM32外部脉冲计数第一步,设置GPIOGPIO_InitTypeDefGPIO_InitStructure;/*PA0,PA12->左右脉冲输入*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_12;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//50M时钟速度

GPIO_Init(GPIOA,&GPIO_InitStructure);ARM硬件结构及应用第75页第二步:设置RCC

RCC_ClocksTypeDefRCC_ClockFreq;SystemInit();//源自system_stm32f10x.c文件,只需要调用此函数,则可完成RCC配置.

RCC_GetClocksFreq(&RCC_ClockFreq);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);ARM硬件结构及应用第76页第三步,设置定时器模式voidTIM1_Configuration(void)//只用一个外部脉冲端口

{

TIM_TimeBaseInitTypeDef

TIM_TimeBaseStructure;

//配置TIMER1作为计数器

TIM_DeInit(TIM1);

TIM_TimeBaseStructure.TIM_Period=0xFFFF;

TIM_TimeBaseStructure.TIM_Prescaler=0x00;

TIM_TimeBaseStructure.TIM_ClockDivision=0x0;

TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);//Timebaseconfiguration

TIM_ETRClockMode2Config(TIM1,TIM_ExtTRGPSC_OFF,TIM_ExtTRGPolarity_NonInverted,0);TIM_SetCounter(TIM1,0);

TIM_Cmd(TIM1,ENABLE);

}

ARM硬件结构及应用第77页第四步,能够在主函数中读取计数器值,其它应用,就看详细情况了。u16COUN=0;intmain(void)

{

ChipHalInit();

ChipOutHalInit();while(1)

{

COUN=TIM_GetCounter(TIM1);

}}ARM硬件结构及应用第78页9SPI接口引脚描述引脚名称类型描述SCK输入/输出串行时钟。用于同时SPI接口间数据传输时钟信号。该时钟信号总是由主机输出。SSEL输入从机选择。SPI从机选择信号是一个低有效信号。MISO输入/输出主入从出。MISO信号是一个单向信号,它将数据由从机传输到主机。MOSI输入/输出主出从入。MOSI信号是一个单向信号,它将数据从主机传输到从机。ARM硬件结构及应用第79页9SPI接口硬件连接SPI从机1MOSIMISOSSELSCKSPI从机2MOSIMISOSSELSCKMOSIMISOIO2SCKSPI主机IO1SSEL作SPI主机时,SSEL要接上拉电阻ARM硬件结构及应用第80页时钟极性控制位——CPOL时钟相位控制位——CPHACPHA=0:SPI总线在时钟线第1个跳变沿处采样数据;CPHA=1:SPI总线在时钟线第2个跳变沿处采样数据。该位决定SPI总线上数据采样位置。CPOL=0,当SPI总线空闲时,SCK时钟线为低电平;CPOL=1,当SPI总线空闲时,SCK时钟线为高电平。该位决定了SPI总线空闲时,SCK时钟线电平状态。9SPI接口SPI数据传输ARM硬件结构及应用第81页时钟相位为1时钟前沿数据输出时钟后沿数据采样时钟信号极性0极性1从机选择时钟相位为0时钟前沿数据采样时钟后沿数据输出SPI传输时序时钟前沿输出时钟后沿采样时钟前沿采样时钟后沿输出ARM硬件结构及应用第82页主机模式从机模式

主机使用一个IO引脚选择从机;

传输起始由主机发送数据来开启;

时钟(SCK)信号由主机产生;

经过MOSI发送数据;

经过MISO引脚接收数据。

数据传输在SSEL被主机拉低后开始;

接收主机输出时钟信号;

经过MOSI引脚接收数据;

经过MISO引脚发送数据。SPI接口工作模式ARM硬件结构及应用第83页SPI时钟发生器SPCCR(主机)SCKSPI控制存放器SPCRVPB总线中止中止标志存放器SPINTSPI移位存放器SPI数据存放器SPDRSPI发送、接收单元MOSIMISOSPI时钟检测器(从机)SCKSSSPI状态存放器SPSRSPI接口内部框图ARM硬件结构及应用第84页名称描述访问复位值SPI0名称SPI1名称SPCRSPI控制存放器。该存放器控制SPI操作模式。读写0S0SPCRS1SPCRSPSRSPI状态存放器。该存放器显示SPI状态。只读0S0SPSRS1SPSRSPDRSPI数据存放器。该双向存放器为SPI提供发送和接收数据。发送数据经过写该存放器提供。SPI接收数据能够从该存放器读出。读写0S0SPDRS1SPDRSPCCRSPI时钟计数存放器。该存放器控制主机SCK频率。读写0S0SPCCRS0SPCCRSPINTSPI中止标志存放器。该存放器包含SPI接口中止标志。读写0S0SPINTS0SPINT9SPI接口存放器描述ARM硬件结构及应用第85页SPI存放器描述——SPI控制存放器位765432:0功效SPIELSBFMSTRCPOLCPHA保留SPCR存放器包含一些可编程位来控制SPI功效模块功效,该存放器必须在数据传输之前进行设定。9SPI接口ARM硬件结构及应用第86页位765432:0功效SPIELSBFMSTRCPOLCPHA保留CPHA:时钟相位控制。该位决定SPI传输时数据和时钟关系,并控制从机传输起始和结束。当该位为:1:时钟前沿数据输出,后沿数据采样;0:时钟前沿数据采样,后沿数据输出;SPI存放器描述——SPI控制存放器ARM硬件结构及应用第87页位765432:0功效SPIELSBFMSTRCPOLCPHA保留CPOL:时钟极性控制。1:SCK为低电平有效;0:SCK为高电平有效;SPI存放器描述——SPI控制存放器ARM硬件结构及应用第88页位765432:0功效SPIELSBFMSTRCPOLCPHA保留CPOL:主模式控制。1:SPI处于主模式;0:SPI处于从模式;SPI存放器描述——SPI控制存放器ARM硬件结构及应用第89页位765432:0功效SPIELSBFMSTRCPOLCPHA保留LSBF:字节移动方向控制。1:每字节数据从低位(LSB)开始传输;0:每字节数据从高位(MSB)开始传输;SPI存放器描述——SPI控制存放器ARM硬件结构及应用第90页位765432:0功效SPIELSBFMSTRCPOLCPHA保留SPIE:SPI中止使能。

1:每次SPIF或MODF置位时都会产生硬件中止;0:SPI中止被禁止;SPI存放器描述——SPI控制存放器ARM硬件结构及应用第91页SPSR存放器为只读存放器,用于监视SPI功效模块状态,包含普通性功效和异常情况。SPSR功效描述复位值2:0保留用户程序不要向这些保留位写入1。NA3ABRT从机中止标志。为1时表示发生了从机中止。读取该位清零。04MODF模式错误。为1时表示发生了模式错误。先经过读取该存放器清零MODF位,再写SPI控制存放器。05ROVR读溢出。为1时表示发生了读溢出。当读取该存放器时,该位清零。06WCOL写冲突。为1时表示发生了写冲突。先经过读取该存放器清零WCOL位,再访问SPI数据存放器。07SPIFSPI传输完成标志。为1时表示一次SPI数据传输完成。当第一次读取该存放器时,该位清零。然后才能访问SPI数据存放器。注:SPIF不是SPI中止标志。中止标志位于SPINT存放器中。0SPI存放器描述——SPI状态存放器ARM硬件结构及应用第92页异常情况-读溢出SPI模块内部读缓冲区大小为1个字节,SPIF=1表示读缓冲区满。当SPI功效模块内部读缓冲区满时,又接收到新数据,就会发生读溢出。新接收到数据将会丢失,而状态存放器读溢出(ROVR)位将置位。VPB总线SPI数据存放器SPDRSPI接收移位存放器单字节缓冲区SCKMISOSPI主机模式接收数据示意图9SPI接口ARM硬件结构及应用第93页SPI总线接口与发送移位存放器之间没有写缓冲区。只能在SPI总线空闲期间向SPI数据存放器写入数据。开启传输到SPIF置位(包含读取状态存放器)期间,不能向SPI数据存放器写入数据。不然,新写入数据将会丢失,状态存放器中写冲突位(WCOL)置位。SCKMOSIVPB总线SPI数据存放器SPDRSPI发送移位存放器SPI主机模式发送数据示意图异常情况-写冲突9SPI接口ARM硬件结构及应用第94页SPI主机接口SSEL信号被外界拉低,引发模式错误,此时该主机改变:时钟驱动器被关闭;主机模式变为从机模式;中止标志置位。假如要去除模式错误位(MODF),必须要先读取SPI状态存放器,然后再重新初始化SPI控制存放器。9SPI接口异常情况-模式错误ARM硬件结构及应用第95页在从模式下,假如SSEL信号在传输结束之前变为高电平,从模式数据传输将被中止。正在传输数据将丢失。9SPI接口异常情况-从机中止ARM硬件结构及应用第96页SPDR存放器为SPI提供数据发送和接收。处于主模式时,向该存放器写入数据,将开启SPI数据传输。从数据传输开始到SPIF状态位置位而且没有读取状态存放器这段时间内不能对该存放器执行写操作。SPDR功效描述复位值7:0数据SPI双向数据0SPI存放器描述——SPI数据存放器ARM硬件结构及应用第97页作为主机时,SPCCR存放器控制SCK频率。存放器值为一位SCK时钟所占用PCLK周期数。该存放器值必须为偶数,而且必须大于8。假如存放器值不符合以上条件,可能会造成产生不可预测动作。SPI速率=Fpclk/SPCCRSPCCR功效描述复位值7:0计数值设定SPI时钟计数值0SPI存放器描述——SPI时钟计数存放器ARM硬件结构及应用第98页该存放器包含SPI接口中止标志。SPCCR功效描述复位值0SPI中止SPI中止标志。向该位写入1清零。注:当SPIE位置“1”,而且SPIF和MODF位种最少有一位为1时,该位置位。不过只有当SPI中止位置位而且SPI中止在VIC中被使能,SPI中止才能由中止处理程序处理。07:1保留用户程序不要向这些位写入1NA引发SPI中止事件:数据传输完成;发生模式错误。SPI存放器描述——SPI中止存放器ARM硬件结构及应用第99页9SPI接口使用SPI接口注意关键点作主机时,SSEL引脚必须接上拉电阻,不能作为IO口使用;作主机时,在发送一字节数据同时接收一字节数据;SPI时钟分频值必须大于或等于8;数据存放器与内部移位存放器之间没有缓冲区,写SPDR会使数据直接进入移位存放器。所以数据只能在上一次数据发送完成后写入SPDR存放器。ARM硬件结构及应用第100页SPI应用示例——作为主机操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据开启SPI数据传输等候数据发送结束(SPIF)读出从机发送数据或释放从机ARM硬件结构及应用第101页操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据开启SPI数据传输等候数据发送结束(SPIF)读出从机发送数据或释放从机操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据开启SPI数据传输等候数据发送结束(SPIF)读出从机发送数据或释放从机SPI初始化代码:#defineMSTR (1<<5)#defineCPOL (1<<4)#defineCPHA(1<<3)#defineLSBF(1<<6)#defineSPI_MODE(MSTR|CPOL)voidMSpiIni(uint8fdiv){if(fdiv<8)fdiv=8;S0PCCR=fdiv&0xFE;S0PCR=SPI_MODE;}过滤分频值,假如小于8为非法SPI应用示例——作为主机ARM硬件结构及应用第102页操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据开启SPI数据传输等候数据发送结束(SPIF)读出从机发送数据或释放从机SPI主机发送和接收程序:#defineMSTR (1<<5)#defineCPOL (1<<4)#defineCPHA(1<<3)#defineLSBF(1<<6)#defineSPI_MODE(MSTR|CPOL)uint8MSendData(uint8data){IO0CLR=HC595_CS;S0PDR=data;while(0==(S0PSR&0x80));IO0SET=HC595_CS;return(S0PDR);}SPI应用示例——作为主机ARM硬件结构及应用第103页操作流程设置为SPI从机(SPCR)将要发送数据放入SPDR等候数据发送结束(SPI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论