文件名称:
M0 MAC TCP/IP 以太网单芯片方案 W7500EVB用户手册连载(4)--实战篇-W7500EVB开发板指南.pdf
开发工具:
文件大小: 294kb
下载次数: 0
上传时间: 2019-09-03
详细说明: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最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.