富士通基本操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
富士通笔记I/O口操作以LED实验为例
设置流程
以按键控制LED为例
初始化LED管脚PFR相应位为‘0’设置管脚为GPIO模式,PDOR 设置相应位1输出为1,DDR设置为输出模式相应位为1,key管脚初始化设置PFR相应位为‘0’,DDR相应位设置为‘0’,通过读取PDIR 判断输入情况
*** 外部中断操作以EXTI KEY 为例
操作流程
设置管脚映射;如FM3_GPIO->EPFR06 |= (2 << 2);/* 将INT01映射到INT01_1 */
使能外部中断通道如NVIC_EnableIRQ(EXINT0_7_IRQn); /* 使能ch.0 to ch.7的中断*/
DMAC (直接内存访问控制器)以DMA_Memory_To_Memory为例
DMAC:操作步骤
1 具体如下设置首先DMACA:——》寄存器设置是否使能传送使能——》DMAC触发方式——》数据缓冲长度——》设置DMACB寄存器设置——》传输模式——》传输数据宽度——》设置传送源地址递增或者不变——》目标地址递增或者递减——》完成后是否使能中断源——》DMACSAX DMA传送源地址——》DMACDAX DMA 目标地址——》DMACR使能全局DMA——》(以下是打开了传输完
成中断设置)——
清除NVIC_ClearPendingIRQ(DMAC0_IRQn);DMAC中断——》使能NVIC_EnableIRQ(DMAC0_IRQn);——》设置优先级NVIC_SetPriority(DMAC0_IRQn, 1); (中断函数)中断标志位清零FM3_DMAC->DMACB0 &= ~(7ul << 16);
双时钟定时器以32为周期中断模式为例
例程步骤
写入0xFFFFFFFF到Timer1IntClr清除中断源——》设置Timer1Control寄存器设置是否使能设置时一般为否,工作模式,中断使能,分频数值,计数模式32位or16位,bit0位设置处单次模式外一般为‘0‘。——》如果使能中断配置中断向量,清除定时器中断向量NVIC_ClearPendingIRQ(DTIM_QDU_IRQn);再使能NVIC_EnableIRQ(DTIM_QDU_IRQn);再配置中断优先级
NVIC_SetPriority(DTIM_QDU_IRQn, 1);——》使能计数器Timer1Control使能中断位——》配置计数时间Timer1Load设置载入计数器的值(unsigned long)(sysClkGet(SYS_PCLK0) / (ulFreq * 16) - 1);// (sysClkGet(SYS_PCLK0)函数可以算出APB0的总线时钟——》中断函数清除中断源FM3_DTIM->TIMER1INTCLR = 0xFFFFFFFF;
:从新执行
基本定时器操作以32位自动从载为例
以32位基本为例,注意该实验同事配置;定时器0和定时器1定时器0为16位模式,定时器1为32位模式
初始化TMCR0寄存器,计数模式,分频比例,工作模式——》TMCR2设置CSK3——》STC0寄存器设置中断状态最开始一般为关闭——》设定PCSR寄存器定时器初始值——》配置中断初始化——》在STC中使能中断——》在TMCR0中启动定时器——》中断函数中要清除中断标志位end 详情参见例程源码
看门狗以硬件看门狗为例程
例程步骤
首先在WDG_LCK写入0x1ACCE551接触寄存器的非控制寄存器锁定状态——》WDG_LDR设定计数时间——》再写入0x1ACCE55到WDG_LCK——》写入0x1ACCE55的按位取反值写入WDG_LCK中使能对WDG_CTL的访问权限——》在WDG_LCK 中使能硬件看门狗和使能硬件看门狗中断。——》喂狗函数向WDG_LCK写入0x1ACCE551解除非控制寄存器的锁定状态——》WDG_ICL中写入0x11(任意值)然后再WDG_ICL中写入0xee(前面任意值的按位取反值)清除中断。
系统时钟
具有5种时钟源:
主时钟(CLKMO)
副时钟(CLKSO)
高速CR时钟(CLKHC) 低速CR时钟(CLKLC) PLL 时钟(CLKPLL)
从时钟源选取一种作为系统控制是时钟,主控时钟是MCU使用的内部总线时钟源,通过分频主控时钟,生成基本时钟。另外,通过分频基本时钟,生成各总线时钟,
基本时钟及各总线时钟叫做内部总线时钟。内部总线时钟包括以下5 种时钟
•基本时钟(FCLK/HCLK )
•APB0总线时钟(PCLK0)
•APB1总线时钟(PCLK1)
•APB2总线时钟(PCLK2)
•TRACE时钟(TPIUCLK)
以函数库中的时钟设置为例
复位时钟源SCM_CTL=0x00;——》设置主副时钟稳定时间CSW_TMR = (SYS_SO_WAIT << 4) | (SYS_MO_WAIT << 0)--->基本时钟分频比设置BSC_PSR = SYS_BSC_PSR;——>AHB0分频设置,具体设置参考源代码
串口步骤以中断为例
设置步骤
使能相应的串口管脚为相应模式——》SCR寄存器初始化串口FM3_MFS4_UART->SCR = (1 << 7);——》SMR工作模式设定,结束位长度设定,使能串行输出。——》SSR=0x80清除接收错误标志位——》ESCR=0x00不配置额外功能——》BGR设置波特率sysClkGet(SYS_PCLK2) / 115200 - 1;——》FBYTE设置发送与接收FIFO数据缓冲长度,——》FCR0复位并使能发送和接收FIFO
——》使能和发送接收——》中断初始化初始化接收中断初始化发送中断,——》使能接收中断——》通过标志位检测是否有信号输出——》有输入标志位置位关闭接收中断——》开启发送中断(进入中断标志位位后要清除相应中断)
SPI操作