SPI初始化程序归类.pdfVIP

  • 9
  • 0
  • 约5.79千字
  • 约 6页
  • 2021-11-21 发布于福建
  • 举报
//SPI 初始化子程序,用于数码管显示 void spi_intial() { SpiaRegs.SPICCR.all =0x0047; // 使SPI 处于复位方式 , 下降沿 , 八位数据 SpiaRegs.SPICTL.all =0x0006; // 主控模式 , 般时钟模式 , 使能 talk, 闭SPI 中断 SpiaRegs.SPIBRR =0x007F; // 配置波特率 SpiaRegs.SPICCR.all =SpiaRegs.SPICCR.all|0x0080; // 退出复位状态 EALLOW; GpioMuxRegs.GPFMUX.all=0x000F;// 设置通用引脚为 SPI 引脚 EDIS; } //IO 初始化子程序 void gpio_init() { EALLOW; GpioMuxRegs.GPAMUX.bit.TDIRA_GPIOA11=0; //GPIOA11 设置为一般 I/O 口 GpioMuxRegs.GPADIR.bit.GPIOA11=1; // 把 GPIOA11设置为输出 // 将 GPIOE0~ GPIOE2配置为一般 I/O 口输出 , 作 138译码 GpioMuxRegs.GPEMUX.all = GpioMuxRegs.GPEMUX.all0xfff8; GpioMuxRegs.GPEDIR.all = GpioMuxRegs.GPEDIR.all|0x0007; // 将 GPIOB8~ GPIOB15配置为一般 I/O 口,D0 ~D7 GpioMuxRegs.GPBMUX.all = GpioMuxRegs.GPBMUX.all0x00ff; EDIS; GpioDataRegs.GPADAT.bit.GPIOA11=0; //GPIOA11=0; 该端口为 74HC595锁存信号 } // 键扫描子程序 K1~K8 int Keyscan1(void) { EALLOW; // 将 GPIOB8~ GPIOB15配置为输入 ,D0~ D7 GpioMuxRegs.GPBDIR.all = GpioMuxRegs.GPBDIR.all0x00ff; EDIS; GpioDataRegs.GPEDAT.all = 0xfff8; // 选通 KEY低 8位 for (i=0; i100; i++){} // 延时 // 判 K1~K8是否按下 if ((GpioDataRegs.GPBDAT.all|0x00ff)!=0xffff) { for (i=0; i30000; i++){} // 延时消抖 if ((GpioDataRegs.GPBDAT.all|0x00ff)!=0xffff) { KeyReg1=GpioDataRegs.GPBDAT.all ; // 读键值 while ((GpioDataRegs.GPBDAT.all|0x00ff)!=0xffff) // 判 K1~K8是否松开 { GpioDataRegs.GPDDAT.bit.GPIOD1 = !GpioDataRegs.GPDDAT.bit.GPIOD1; for (i=0; i1000; i++){} } return (1); } } return (0); } // 键扫描子程序 K9~K16 int Keyscan2(void) { EALLOW; // 将 GPIOB8~ GPIOB15配置为输入 ,D0~ D7 GpioMuxRegs.GPBDIR.all = GpioMuxRegs.GPBDIR.all0x00ff; EDIS; GpioDataRegs.GPEDAT.all = 0xfff9; // 选通 KEY高8位 for (i=0; i100; i++){} // 延时 // 判 K8~K16是否按下 if ((GpioDataR

文档评论(0)

1亿VIP精品文档

相关文档