文档详情

fm3之循序渐进.pdf

发布:2017-05-18约5.63万字共46页下载文档
文本预览下载声明
MB9B506 GPIO 无可否认,对一个CPU 还不了解时我们最希望的是它能动起来。 那么我们就从GPIO 开始吧。虽然晶体的配置,启动等都必须。我们还是先跳过吧。 MB9B506 的GPIO 有以下几个寄存器位来控制,选择是使用哪个功能: 当然还有作为输入输出数据的:PDIR(输入) ,PDOR (输出)。 这里实际上都只是寄存器的一个位,具体的寄存器应该如此: 比如PFR : 实际寄存器FPRX 的一位 PFR 有PFR0 ,对应P0F~P00,PFR1 ,对应P 1F~P 10, PFR8 ,对应P8F~P80, PFR :GPIO 和设备功能选择。 0 :GPIO , 1 :设备。 PCRX :为上拉配置位为 1 时选择 ADE 模拟输入允许(为1 时选择) SPSR 配置相关 位USB 或晶体腿脚或不是。为1 时选择。 DDR 输入输出方向设置 0 为输入,1 为输出。 EPFR 扩展 功能选择配置位。这个寄存器每个 对应一个寄存器的多位 (不是一位哦)这 种寄存器高达11 个之多。 下面就以一个小例子作为结束吧。 例子:MB9B500 开机启动后一般默认为GPIO 输入(除了JTAG 和时钟外)。 如果要点亮Led 只要把DDR 设置位1 就可以送数据1 或0 到PDOR 熄灭或点亮LED 了(当 然要连接好电路)。 这个LCDIO 初始化就用到了IO 的配置: void Init_LCD_IO() { /* Release the analog input function*/ ADE =0x03; //不选ADC (估计这个IO 有ADC 功能) /*Select CPIO function*/ LCD_CS_PFR = ~LCD_CS; //选择GPIO /*Make pin output*/ LCD_CS_DDR |= LCD_CS;//方向输出 /*Select CPIO function*/ LCD_CD_PFR = ~LCD_CD; /*Make pin output*/ LCD_CD_DDR |= LCD_CD; /*Select CPIO function*/ LCD_PS_PFR = ~LCD_PS; /*Make pin output*/ LCD_PS_DDR |= LCD_PS; /*Select CPIO function*/ LCD_CLK_PFR = ~LCD_CLK; /*Make pin output*/ LCD_CLK_DDR |= LCD_CLK; /*Select CPIO function*/ LCD_DATA_PFR = ~LCD_DATA; /*Make pin output*/ LCD_DATA_DDR |= LCD_DATA; } 如何设置系统模式 如图MD1 ,MD0 决定了系统启动 时钟的问题 有哪些时钟:外部主,外部子,内部低,内部高,PLL 产生的5 种吧。 Main clock (CLKMO) Sub clock (CLKSO) High-speed CR clock (CLKHC) Low-speed CR clock (CLKLC) PLL clock (CLKPLL) 复位 Power-on reset INITX pin input External power supply/low-voltage detection reset Software watchdog reset Hardware watchdog reset Clock failure detection reset Anomalous frequency detection reset Software reset TRSTX pin input MB9B506 之AD 转换初探 3 uni
显示全部
相似文档