1、简易数字信号传输性能分析仪(E题)摘 要 通信的根本任务是传递信息,准确地传输数字信号是数字通信的一个极其重要的环节。数字信号在传输过程中会受到各种信号的干扰,而本数字信号分析仪就是为了实现数字信号传输性能测试。本分析仪由CPLD产生数字信号,其时钟信号由MCU控制,为模拟数字信号的传输信道而制作了截止频率分别为100kHz、200kHz、500kHz的低通滤波器,同时通过CPLD产生一个伪随机信号来模拟数字信号传输中的噪声,加法器将经过滤波器滤波之后的数字信号和伪随机噪声信号相加,相加之后的信号作为数字分析电路的输入信号,然后通过数字分析电路产生输出信号和此信号的同步信号,然后用示波器显示数
2、字信号的眼图,通过对眼图的观察,分析数字信号的传输性能。实测结果表明,本系统实现了题目基本部分的各项设计指标,扩展部分的大多数指标。关键词:数字信号 传输 滤波 噪声 眼图II目 录1系统方案51.1 数字信号发生器的论证与选择51.2 低通滤波器的论证与选择51.3 伪随机信号发生器的论证与选择51.4 信号合成模块的论证与选择61.5 数字分析模块的论证与选择62系统理论分析与计算72.1 m序列数字信号72.1.1 数字信号发生器部分的m序列的产生72.1.2 伪随机信号发生器部分的m序列的产生72.2 低通滤波器设计72.2.1 芯片选择72.2.2 二阶参数计算72.2.3 四阶参数
3、82.3 同步信号提取92.4 眼图显示92.4.1 眼图形成原理92.4.2 眼图显示方法93电路与程序设计103.1 单元电路设计103.1.1 单元框图103.1.2 信号发生器单元设计103.1.3 伪噪声信号产生单元设计113.1.4 滤波器单元设计123.1.5 加法器单元设计143.1.6 数字信号分析单元设计154 测试结果154.1 测试条件与仪器154.2 测试结果及分析164.2.1 基本要求部分164.2.2 发挥部分184.2.3 测试分析与结论19参考文献19附录1:电路原理图20附录2:源程序211系统方案本系统主要由数字信号发生器模块、低通滤波器模块、伪随机信号
4、发生器模块、信号合成模块、数字信号分析模块,下面分别论证这几个模块的选择。1.1 数字信号发生器的论证与选择方案一:采用数字逻辑芯片实现n级线性移位寄存器发生器和其他门电路来产生m序列。此法硬件电路简单,成本低廉,但电路连线较多,工程量大,且电路产生的数字信号效果较差;方案二:采用matlab仿真和单片机编程实现m序列输出。利用matlab计算出m序列,然后用单片机周期性输出该序列。此法几乎不需要额外的硬件电路,但m序列的计算难度稍大;方案三:采用基于FPGA/CPLD的模块电路实现。利用FPGA/CPLD生成n级高速线性移位寄存器发生器和辅助逻辑电路来产生m序列。这种方法实现方法简单,便于仿
5、真和设计,可以在短时间内设计完成,优势突出;综合以上三种方案,选择设计方案三。1.2 低通滤波器的论证与选择方案一:采用无源LC滤波器实现。电路结构简单,容易实现,但其实际幅频特性不理想,增益控制较难;方案二:由RC元件与运算放大器组成低通滤波器,可用在信息处理、数据传输、抑制干扰等方面,但因受运算放大器频带限制,这类滤波器主要用于低频范围。具有理想幅频特性的滤波器是很难实现的,只能用实际的幅频特性去逼近理想的。一般来说,滤波器的幅频特性越好,其相频特性越差,反之亦然。滤波器的阶数越高,幅频特性衰减的速率越快,但RC网络的节数越多,元件参数计算越繁琐,电路调试越困难;方案三:采用极低噪声、高频
6、有源滤波器集成电路芯片,其电路具有外围电路简单,幅频特性好,精度高等优点。可选用的高频滤波芯片有LT1568、LTC6256、LTC1560等芯片,其中LT1568是一款超低噪声的高频滤波模块,采用不同电阻值可以实现截止频率100kHz到10MHz的低通滤波器;综合以上三种方案,选择方案二。1.3 伪随机信号发生器的论证与选择由于此部分和数字信号发生器部分的结构相似,故选择CPLD与数字信号发生器模块同时实现,以节约资源,降级能耗。1.4 信号合成模块的论证与选择方案一:采用集成运放组成反相加法电路实现噪声和信号的合成反相加法器电路容易理解,且公式简单,但是电路反相,对于后续数字信号处理,电路
7、反相之后仍需再加一级运放再次反相;方案二:采用集成运放组成同相加法电路实现噪声和信号的合成同相加法器信号计算公式叫复杂,电阻匹配要求较高,通常情况下,对原有输入信号有所放大或缩小,但是输入输出信号相位没有变化,且可以通过适当选择电阻实现原输入信号的相加,而不加上放大倍数;综合考虑采用方案二。1.5 数字分析模块的论证与选择方案一:由硬件电路进行时钟分离,硬件电路较复杂,调试困难;方案二:由CPLD,MCU等用软件编程的方法实现同步信号的实现,程序有很大的发挥创新空间。综合考虑采用方案二。2系统理论分析与计算2.1 m序列数字信号 2.1.1 数字信号发生器部分的m序列的产生该信号的多项式为f1
8、(x)=1+x2+x3+x4+x8。在通信原理中有如下定理:若一个n次多项式满足如下条件:(1)、f(x)是既约的(2)、f(x)可整除1+xm,m=2n-1(3)、f(x)除不尽xq-1,qm则称f(x)为本原多项式。由本原多项式产生的序列一定是m序列。所以多项式f1(x)为本源多项式。其产生的m序列的循环周期(长度)为P=28-1=255。2.1.2 伪随机信号发生器部分的m序列的产生该信号的本源多项式为f1(x)=1+x1+x4+x5+x12。其产生的m序列的循环周期(长度)为P=212-1=4095。2.2 低通滤波器设计 2.2.1 芯片选择本设计选用linear公司的LT1568芯
9、片,该芯片采用单+3V电源时的中心频率可高达 10MH,采用单个电阻器阻值来设定低通截止频率(200kHz = fC = 5MHz),不对称的电阻器阻值可将截止频率扩展100kHz-10MHz ,采用不同的电阻器阻值可实现带或不带增益的低通转移函数 (巴特沃斯、切比雪夫或定制) ,内部有一对2阶滤波器,可采用单 3V (最小值为 2.7V) 至 5V 电源运作,轨至轨输入和输出电压。2.2.2 二阶参数计算图1 LT1568的内部结构及外部测试电路LT1568芯片的内部结构及外部测试电路如图1,图中包含左右两个二阶低通滤波,并连接成了两个独立的二阶低通滤波电路,单个二阶低通滤波的低通传输特性函
10、数为:其中,并不是OUTA或者OUTB,且C1、C2是内部电容,典型值为:2.2.3 四阶参数为了获得更好的滤波特性,可以设置一个四阶滤波电路,如图2所示,其不同截止频率巴特罗斯低通滤波参数可在该芯片的datasheet中查到,如表1。图2 四阶滤波器接法表1 四阶滤波器参数设计截止频率(kHz)R11,R21R31R12,R22R3210010.5k15.8k18.2k8.87k2005.23k7.87k9.31k4.42k5002.1k3.16k3.74k1.78k2.3 同步信号提取 采用STM32单片机对传输的数字信号进行程序处理操作,从而提取处同步信号。2.4 眼图显示2.4.1 眼
11、图形成原理屏幕上的每个信号波形通过触发点对齐,眼图通过对信号多次触发采集后叠加生成,如图3。图3 眼图形成原理2.4.2 眼图显示方法本简易数字信号传输性能分析仪使用示波器来显示眼图,数字信号分析电路输出数字信号及其同步信号,将分析电路的分析信号加到示波器的Y轴,将示波器的触发源选择在外接档,并将数字信号的同步信号通过示波器的外接输入探头输入,然后调整示波器的扫描时间间隔和其触发电平,就能得到稳定的眼图,如图4。图4 眼图形成原理3电路与程序设计本系统由数字信号发生器模块、伪随机信号发生器、滤波电路模块、加法器模块、数字电路分析模块,显示器模块组成,如图5所示。图5 系统总框图3.1 单元电路
12、设计3.1.1 单元框图MCUSEM32M序列伪随机信号信号合成示波器眼图显示CPLDEPM7128曼彻斯特码滤波电路分析电路图6 子系统组成框图3.1.2 信号发生器单元设计1、m序列产生模块的电路图如图6所示。Clk输入端为同步时钟,经过线性移位寄存器后用一组门电路作为反馈函数网络。该电路采用CPLD芯片EPM7128实现。由于该CPLD资源有限,同时提供了信号发生器和伪噪声发生器所需要的的逻辑器件。所以其输入时钟控制采用了一片STM32单片机,通过单片机按键可以实现对clk时钟从10kHz到100kHz步进10kHz可调,即是数字信号发生器的数据率从10kbps到100kbps步进10k
13、bps可调,同时,用液晶显示数据率。ClkQout图7 m序列产生电路2、曼彻斯特码产生电路如图8所示。其中的m_gen子模块为m序列产生模块,将m序列与对应的同步时钟信号V1_clock一起输入到一个二输入异或门就可以得到m序列的曼特斯特编码V1_m。但由于异或门的输入端信号可能同时跳变产生竞争冒险现象,故在异或门后级加一个用晶振时钟同步的D触发器,以消除竞争冒险。该模块由CPLD实现。图8 曼彻斯特编码电路3.1.3 伪噪声信号产生单元设计1、伪噪声信号产生子系统系统电路图如图9所示,该模块同样由CPLD实现。其输入时钟为20MHz的晶振时钟,经过二分频后得到10MHz的时钟,将之供给线性
14、移位寄存器。Qout ClkClkQout图9 伪随机信号发生器电路图3.1.4 滤波器单元设计通过查看LT1568的数据手册,针对滤波器不同的截止频率计算芯片外围电路中电阻的阻值,并用该芯片的设计软件进行了设计验证,得到100kHz,200kHz,500kHz的滤波电路图分别为图10,图11,图12。图10图11图12因为要求滤波器要在0.2-4范围内增益可调,虽然LT1568这款芯片可以通过调整外围电路电阻的比值来实现增益的调整,但是因为其供电电压为5V,如若滤波器的输入电压为TTL电平,则不能实现4倍放大,所以滤波芯片并没有设置放大,而采用在芯片后,级联一级反相放大电路,进行放大,同时,
15、让滤波芯片的输出信号从/OUT端引出,反相放大电路如图13。图133.1.5 加法器单元设计为实现数字信号与噪声信号的叠加,采用图14所示同相加法电路,该电路能够实现V2,V3信号的同相相加,通过电阻计算,若R25=2R25=2R28=2R30=2R29,就能够使V2A=V2+V3。图14 加法器模块电路3.1.6 数字信号分析单元设计数字信号分析模块采用一片STM32单片机实现主程序为函数初始化和等待中断,比较简单,不做赘述。中断服务程序的流程图如下所示。PA2口中断(曼彻斯特码上升沿中断)保持TIM2计数值,清零、开始计数将计数值与上一次结果进行比较,并按结果进行相应处理是TIM1按PWM
16、模式输出,输出一个与同步时钟同频率的方波返回中断图15 中断服务程序流程图4 测试结果4.1 测试条件与仪器测试条件:检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。测试仪器:YB4340G模拟示波器,TDS1012泰勒数字示波器,数字万用表,QF1750-2稳压稳流直流电源,YB1602P功率函数信号发生器。4.2 测试结果及分析4.2.1 基本要求部分(1)数字信号发生器 仿真波形如下:图16数字信号发生器的m序列仿真波形数据率测试数据为:表2 数据率测试数据理论数据率(kbps)1020304050测试值(kbps)10.0020.0029.944
17、0.0050.00误差000.200%00理论数据率(kbps)60708090100测试值(kbps)59.9070.1080.2090.05100误差0.167%0.143%0.250%0.005%0数据率误差均不大于0.25%,小于1%,满足题目要求。CPLD输出的数字信号高电平为3.4V,是TTL电平,满足题目要求。(2) 低通滤波器对低通滤波器截至频率测试时,输入信号为峰峰值为2V的正弦波100kHz低通滤波测试数据如下:表3 100kHz低通测试数据信号频率(kHz)103050708090输出电压p-p(V)2.002.002.001.961.841.68信号频率(kHz)100
18、150200输出电压p-p(V)1.42400mV250mV测得其截止频率为101k,误差为1%200kHz低通滤波测试数据如下:表4 200kHz低通测试数据信号频率(kHz)1030507090110输出电压p-p(V)2.002.001.982.002.001.96信号频率(kHz)130150170180190200输出电压p-p(V)1.931.901.761.521.421.30信号频率(kHz)250400输出电压p-p(V)760 mV190 mV测得其截止频率为191k,误差为4.5%500kHz低通滤波测试数据如下:表5 500kHz低通测试数据信号频率(kHz)50100
19、150200250300输出电压p-p(V)2.002.001.961.961.961.92信号频率(kHz)3504004505007001000输出电压p-p(V)1.881.761.621.36440mV128mV信号频率(kHz)15002000输出电压p-p(V)30mV17.2mV测得其截止频率为494k,误差为1.2%经LT1568滤波之后的信号经反相端输出,然后经过一个反相放大器放大,测试得其放大倍数范围为0.036倍,满足0.24倍的题目要求。带外衰减测试结果:四阶滤波,带外衰减远大于40 40dB/十倍频程,实际测试其十倍频程处信号已经mV级别,达到题目要求。(3) 伪随机
20、信号发生器其仿真波形如下图17 伪随机信号发生器m序列仿真波形数据率测得为9.98Mbps-10.02Mbps,误差绝对值为0.2%,满足题目要求输出信号峰峰值测试结果:最低可到50mV,最大可到3V,达到TTL电平,满足题目要求。(4) 眼图观察用数字信号发生器产生的时钟信号V1-clock进行同步得到眼图。测试中数字信号码率为100kHz,滤波器分别为为100kHz、200kHz、500kHz时对应的眼图,如下图所示。 Fc=100kHz fc=200kHz fc=500kHz图18 眼图测试结果眼图的具体测试数据如下表所示。 测试条件:100mV噪声信号,100kHz低通滤波表6 100
21、kHz低通滤波下的眼图幅度测试数据数据率/kbps102030405060708090100眼幅度/V3.43.43.43.43.43.43.43.43.43.5 测试条件:100mV噪声信号,200kHz低通滤波表7 200kHz低通滤波下的眼图幅度测试数据数据率/kbps102030405060708090100眼幅度/V3.43.33.43.43.43.353.43.53.53.4 测试条件:100mV噪声信号,500kHz低通滤波表8 500kHz低通滤波下的眼图幅度测试数据数据率/kbps102030405060708090100眼幅度/V3.23.23.23.23.23.23.23
22、.23.23.24.2.2 发挥部分(1) 数字信号发生器输出的V1 采用曼彻斯特编码由CPLD做,仿真波形如下:图19 m序列和曼彻斯特编码仿真波形(2) 用单片机提取同步信号和数字信号仪器输入到示波器得到眼图。滤波器截止频率为100kHz时的眼图结果提取的同步信号与m序列的clock信号周期相同;同步信号不是标准方波,而是一个负脉冲,但是当眼图显示的外部触发源已经足够;两个信号有一点点的相位差,但是在眼图的显示时,只需稍加调节触发电平就可以很好的显示眼图。 Fc=100kHz fc=200kHz fc=500kHz图20 眼图测试结果(3) 伪随机信号发生器输出信号 V3 幅度可调,V3
23、的峰峰值范围为100mVTTL电平 此项已在基本要求数据测试中达到要求并说明(4) 高噪声下的眼图(噪声的Vpp=2.4V)图21 200kHz低通滤波后的眼图 图22 500kHz低通滤波后的眼图4.2.3 测试分析与结论根据上述测试数据和测试现象,由此可以得出以下结论:1、滤波器截止频率较高时,能更好的对数字信号进行滤波,也就是传输性能更好;当滤波器截止频率较低时,数字信号的边缘被平缓话,对信号的传输造成较大影响。2、通过对眼图的观察,可以了解数字信号的失真量,信号幅度等信息。由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定。综上所述,本设计达到设计要求。参考文献1 杨素行模拟电
24、子技术基础高等教育出版社.2006年2 孙延鹏VHDL与可编程逻辑器件航空工业出版社.2006年.3 彭刚基于ARM Cortex-M3的stm32系列嵌入式控制器应用实践电子工业出版社.2010年.2 黄志伟常用电路模块制作北京航空航天大学出版社.2011年.附录1:电路原理图附录2:源程序主程序:/头文件申明#include stm32f10x.h#include fsmc_sram.h#include stm32f10x.h/结构体申明ErrorStatus HSEStartUpStatus;TIM_TimeBaseInitTypeDef TIM8_TimeBaseStructure;T
25、IM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_TimeBaseInitTypeDef TIM1_TimeBaseStructure;TIM_OCInitTypeDef TIM8_OCInitStructure;TIM_OCInitTypeDef TIM1_OCInitStructure;TIM_BDTRInitTypeDef TIM8_BDTRInitStructure;/子程序的申明void EXTI_Configuration(void);void NVIC_Configuration(void);void RCC_Configurati
26、on(void);void GPIO_Configuration(void);void TIM_Config(int aa);void TIM_Configuration(int aa);void TIM1_Configuration(int aa);void TIM2_Configuration(void);void LCD_Input1(void);void lcd_rst(void);extern void LCD_Init(void);void LCD_displaychar(u16 Line,u16 Row,u8 Num);void LCD_displayABC(u16 Line,u
27、16 Row,u8 Num);void Delay(_IO uint32_t nCount);int main(void)#ifdef DEBUG debug();#endif/初始化RCC_Configuration();EXTI_Configuration();NVIC_Configuration();RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);GPIO_Configuration();GPIO_SetBits(GPIOC, GPIO_Pin_7);FSMC_LCD_Init();LCD_Init();LCD_Input1();TIM
28、2_Configuration();TIM_Cmd(TIM8,DISABLE);TIM_Config(7200);LCD_displayABC(150,224,1);LCD_displayABC(150,208,0);LCD_displayABC(150,192,46);LCD_displayABC(150,176,37);LCD_displayABC(150,160,51);LCD_displayABC(150,144,54); while (1) /按键引脚的中断配置void EXTI_Configuration(void) EXTI_InitTypeDef EXTI_InitStruct
29、ure; GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource2); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource4); EXTI_ClearITPendingBit(EXTI_Line0); EXTI_ClearITPendingBit(EXTI_Line2);EXTI_ClearITPendingBit(EXTI_Line4); EXTI_Ini
30、tStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_Line = EXTI_Line0 | EXTI_Line2 | EXTI_Line4; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);/按键中断的NVIC配置void NVIC_Configuration(void) NVIC_InitTypeDef
31、NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; /通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; /响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init
32、(&NVIC_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; /通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_I
33、nit(&NVIC_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn; /通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVI
34、C_Init(&NVIC_InitStructure);/系统时钟配置void RCC_Configuration(void) RCC_DeInit();/时钟控制寄存器全部恢复默认值 RCC_HSEConfig(RCC_HSE_ON);/外部高速时钟源开启(8M晶振) HSEStartUpStatus = RCC_WaitForHSEStartUp();/等待外部时钟就绪 if(HSEStartUpStatus = SUCCESS)/如果时钟启动成功 RCC_HCLKConfig(RCC_SYSCLK_Div1);/定义AHB设备时钟为系统时钟1分频 RCC_PCLK2Config(RCC_
35、HCLK_Div1);/定义AHB2设备时钟为HCLK时钟1分频 RCC_PCLK1Config(RCC_HCLK_Div2);/定义AHB1设备时钟为HCLK时钟2分频 FLASH_SetLatency(FLASH_Latency_2);/设定内部FLASH的的延时周期为2周期 FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /使能FLASH预存取缓冲区 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /配置PLL时钟为外部高速时钟的9倍频,8MHz * 9 = 72 MHz
36、 RCC_PLLCmd(ENABLE); /使能PLL时钟 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET) /等待PLL时钟设置完成准备就绪 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/使用PLL时钟作为系统时钟源 while(RCC_GetSYSCLKSource() != 0x08)/返回系统所用时钟源确认为外部高速晶振,8M晶振。 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);/* TIM2 clock enable */RCC_APB2
37、PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO| RCC_APB2Periph_TIM8| RCC_APB2Periph_TIM1, ENABLE);/引脚配置void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure;/LCD所用引脚的配置 GPIO_InitStructu
38、re.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /LCD-RST GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /LCD-RST GPIO_InitStructure.GPIO_Spe
39、ed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mod
40、e_AF_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_Init(GPIOD, &G
41、PIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_SetBits(GPIOD, GPIO_Pin_7);/CS=1 GPIO_SetBits(GPIOD, GPIO_Pin_14| GPIO_Pin_15 |GPIO_Pin_0 | GPIO_Pin_1); GPIO_SetBits(GPIOE, GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10); GPIO_ResetBits
42、(GPIOE, GPIO_Pin_1);/RESET=0 GPIO_SetBits(GPIOD, GPIO_Pin_4); /RD=1 GPIO_SetBits(GPIOD, GPIO_Pin_5);/WR=1 GPIO_SetBits(GPIOD, GPIO_Pin_13);/按键引脚的GPIO配置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GP
43、IO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922