您好,欢迎光临本网站![请登录][注册会员]  
文件名称: M0 MAC TCP/IP 以太网单芯片方案 W7500EVB用户手册连载(4)--实战篇-W7500EVB开发板指南.pdf
  所属分类: 其它
  开发工具:
  文件大小: 294kb
  下载次数: 0
  上传时间: 2019-09-03
  提 供 者: weixin_********
 详细说明:M0 MAC TCP/IP 以太网单芯片方案 W7500EVB用户手册连载(4)--实战篇-W7500EVB开发板指南.pdfWsE深圳坤世什技有限公司 W7500EVB开发指南(库函数版) 下面通过一个UART0初始化实例来讲解这个结构体的成员变量的含义 UART_InitType Def UART_Initstructure UART Init structure uart BaudRate 115200 UART_InitStructure UART_WordLength UART_WordLength_8b UART Initstructure UART StopBits UART StopBits 1 UART Initstructure uaRT Parity UaRT Parity No UART_InitStructure UART_Mode= UART_Mode_Rx UART_Mode_Tx; UART Initstructure UART Hardware Flow Control UART Hardware Flow Control None UART_ Init(UaRTo, &UART_Initstructure) 上面代码的意思是初始化串口0,从上面初始化代码可以看出,结构体 UART_InitTypeDef 的第一个成员变量 uart Baudrate用来设置串口的波特率, 第二个成员变量 UART_ WordLength是用来设置数据bt的 第三个成员变量 UART_ Bits是设置停止位, 第四个成员变量 UART_Parity是设置校验位, 第五个成员变量 UART Mode这是使能串口的工作模式 第六个成员变量∪ art Hardware flow Contro设置串口的硬件控制流。 申口2初始化是通过 S USART Init(()函数实现的 uint32 tS UART Init(uint32 t baud) S_ UART Init函数是使能UART2,波特率为传参值 W7500的发送与接收是通过数据寄存器 USART DR来实现的,这是一个双寄存器,包含 了TDR和RDR。当向该寄存器写数据的时候,串口就会自动发送,当收到数据的时候,也是 存到该寄存器内。 W7500库函数操作 USART_DR寄存器发送数据是 UART SendData和 S UART Senddata 函数。 void UART_ Send(UART_TypeDef* UARTX, uint16_t Data) void S_UART_ Send Data (uint16_t Data) 可以通过调用这两个函数来发送数据。 W7500库函数操作 USART DR寄存器读取串口接收到的数据可以调用 UART Receive Data 函数和S_ UART ReceiveData函数。 uint16_t UART_ ReceiveData(UART_TypeDef* UARTx) uint16_t S_UART_ReceiveDatao 通过该函数可以读取串口接受到的数据 WsE深圳坤世什技有限公司 W7500EVB开发指南(库函数版) 串口的状态可以通过状态寄存器 USART FR读取,在固件库函数里面,读取串口状态的是 UART_GetFlagStatus函数和S_ UART_GetFlagStatus函数。 FlagStatus UART_Get FlagStatuS(UART_TypeDef* UARTX, uint16_t UART_FLAG) FlagStatus S_ UART_GetFlagStatus(uint16_t UART_FLAG) UART GetFlag Status函数和S_ UARTGetFlag Status函数的参数非常关键,它是标示我们 要查看串口的哪种状态。比如要读取判断RXF寄存器看它是否正在发送数据,可以通过 UART GetFlag Status函数或S∪ ART GetFlagStatus函数来读取。 UART_GetFlag Status(UART_FLAG_RXFE): S_UART_GetFlagStatUS(s_UART_FLAG_RXF): 这些标识号在W7500 k uart h里面是通过宏定义定义的 #define uart flag ri (uint16_toXO1UL < 8)/Ring indicator #define uart flag txFe (uint 16_t)0Xo1UL <<7)/ Transmit FIFo empty * #define Uart FLag RXFF (uint 16 t0x01UL < 6)/ Receive FIFO full * #define Uart FLag TXFF (uint 16 t)0x01UL < 5)/ Transmit FIFO full * #define Uart Flag RXFE (uint16-toXO1UL < 4)/ Receive FIFO empty x/ #define uart FLAg busy (uint16-toXo1UL < 3)/ UART busy * #define uart flag dcd (uint 16 t0X01UL < 2)/*Data carrier detect * define uart flag dsr (uint 16 t)0x01UL < 1/*Data set ready #define uart FLAg cts (uint16_t)oxo1UL <<0)/Clear to send x #define s uart flag rxo (uint 16_t0XO1UL <<3)/RX buffer Overrun #define s uart flag tXo (uint 16 t0x01UL < 2)/TX buffer Overrun * define s uart flag rXe (uint 16_ t0x01UL < 1)/RX buffer Full * 当需要使能串口中断时,可以调用 UART_ITConfig函数和S_ UART_ITConfig函数 void UART_ ITConfig(UART__Type* UARTX, uint16 t UART_ IT, FunctionalState NewState) void S_ UART ITConfiguint l6 t S UART IT, Functiona sTate New state UART_ITConfig函数的第一个参数是表示使能那个串口,第二个参数是使能哪种中断。比 如在接收到数据的时候,发生中断。 UART_ITConfig(UARTO, UART_IT_FLAG_RXI, ENABLE); S_UART_ITConfig(UART_IT_FLAG_RXI, ENABLE) 当使能了某个中断后,该中断发生时,状态寄存器中的对应标志位会改变。在中断处理函 数中,可以调用 uart GetITstatus函数或S_ UarT GetiTstatus函数来读取判断。 ITStatus UART_GetITStatusqUART_Type DefK UARTX, uint16_t UART_ID) ITStatus s_UART_ GetITStatus(uint16_tS_UART_IT); 通过 UART GetITstatus函数来判断串口接收数据完成的方法是 WsE深圳坤世什技有限公司 W7500EVB开发指南(库函数版) UART GetI TStatuS(UARTO, UART IT FLAG RXl) S_UART_GetITStatuS(S_UART_IT_FLAG_RXD) 返回值是1,说明是串口接收中断发生 52硬件设计 本实验需要用到的硬件资源有 1 UART2 PC 电路在W750EVB开发板上默认是已经连接好了的。所以在硬件上不需要动任何东西。 53软件设计 在W7500 EVB UART工程里,可以看到 main. c里面编写有如下代码: int maino uint8ti=0, tx dara[100]="炜世科技W7500EVBV串口试验rn"; sv teminit(; /*系统内部时钟初始化* delay_ init o: /*系统滴答时钟配置*/ S UART Init(115200) /*初始化串口通信:1152008-0-2*/ S_UART_ITConfig(S_UART_IT_FLAG_RXI, ENABLE; NVIC_ Clear PendingIRQ(UART2_IRQn) NVIC_EnableIrQUART2_IRQn) 炜世科技— -WiZnet w7500官方代理商,全程技术支持,价格绝对优势! while (tx dara[!=0) S UART Senddata( tx dara[);//通过UART2发送 Whie(S_ UART_GetFlagStatus( S UART FLAG TXR);∥判读UART1忙 +十; while (1) 5 WsE深圳坤世什技有限公司 W7500EVB开发指南(库函数版) 在W7500Xi.c里面编写如下代码 void UART2 Handler( void) uint8 t Readvalue. Readvalue= S_ UART_ ReceiveDatao; S UART Send Data( Readvalue);//通过UART2发送 S UART_ ClearITPendingBit(s UART_ IT_ FLAG RXl) 这里开启了∪ART2的接收中断无论main.C在执行什么操作只要PC向W7500EVB的 ∪ART2发送数据就会进入中断服务函数,这个中断会接收PC发送过来的数据,然后在发送回 这里已经对 printf的底层函数修改过了所以可以通过prn函数来输出串口数据了 printf(串口试验n) 如果需要更改 printf输出的串口可以通过修改 USING UART2这个宏定义来完成。 #include #include " W7500x h #define USING uart / USING UaRto/ USING UArT1 #if defined USING UaRTO #define UART SEND BYTE(ch) UartPutc qUARTO, ch #define UART_RECV_-BYTeo UartGetcqUARTO #elif defined (USING_UART1) #define UART SEND BYTE(ch) UartPutcUARTl, ch) #define UART_RECV_-BYTeo Uart Getc(UART1) #elif defined(USING_UART2) #define UART_ SEND BYTE(ch)s_UartPutc(ch) #define UaRT_ RECV_ byte s_ UartGetco en #if defined(_CC_arm 大实大大大★大火大大大大内大大大大大内x才大大实大大大大大;大大大大大大大六大大内实大大大★大大x;大★大大;大大大大大x大大六 /* Retarget functions for ARM DS-5 Professional /Keil MDK 太kk大大大大大大k太大古大大大大大大大大云k大大古大大大k大大太大k大kk大大大六大大大大大大太大大大大大古太大大k大 #include
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: