【前方高能,自备护镜】一堆乱而无序的东东......为UART(基于Z-stack)通信准备的资料

1 篇文章 0 订阅
1 篇文章 0 订阅


本来是为了“基于Z-stack的UART通信”讲课准备的资料。


后来把立哥坑上去了,这些东西就用不上了。。。


觉得扔了有点可惜。(好歹也花了时间准备的)


所以就丢到这里来了。。。(没什么好看的,打完酱油你可以回去了)


























网上和论坛里面很多帖子都把精力集中到分析协议栈的串口工作机制上,比如分析 DMA工作原理,中断工作原理,然后分析输入和输出 Buffer 的处理等内容,学习者跟着协议栈的串口底层一直到顶层转圈、转圈、再转圈,蒙圈了。
 实际上,从应用角度讲,我们根本就没有必要去深入的追究 Zstack 中串口的工作机制,也没有必要去搞清楚到底是怎么 DMA 和 Interrupt 的,我们只要调用几个简单函数就可以正常使用串口了。其实协议栈已经把使用串口的条件准备好了,我们何必再纠结硬件底层实现呢?应用者应该把协议栈看作一个平台,平台之上的应用才是我们的目标。下面我就讲一下如何利用协议栈现有平台来实现自己的串口应用。这里我所提及的现有平台即是Zstack自带的MT包,其实 Zstack 中的这个 MT包功能相当强大,通过 TI 提供的 ZTOOL工具可以用串口的方式同整个协议栈进行交互,在我们编写 Zigbee应用程序的过程中,很多不知道该如何调用的函数都能在 MT 中找到参考!这个不多说了,有兴趣的同学可以去专门研究一下 MT包。 





——————————————————


串口——UART

UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART,读音/'ju:art/)
它包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。
UART是一种异步收发传输器,是电脑硬件的一部分,将资料由串行通信与并行通信间作传输转换。UART通常用在与其他通讯接口(如EIA RS232)的连结上。

整个例程很简单,分三步走,实际上就是三个语句,不过我们可以了解一下具体原理。步骤如下: 
1.串口初始化
【void MT_UartInit() 】
2.登记任务号
【void MT_UartRegisterTaskID(byte taskID)】
3.串口发送
【void MT_UartProcessZToolData(uint8 port, uint8 event) 


——————————————————
串口初始化 MT_UartInit

void MT_UartInit ()
{//这个是 MT中的一个串口初始化函数,主要作用是初始化串口工作的一些规矩。
  halUARTCfg_t uartConfig;

  /* Initialize APP ID */
  App_TaskID = 0; 	//处理串口数据的任务ID,可以先不管。

  /* UART Configuration */
  uartConfig.configured           = TRUE;
  uartConfig.baudRate             = MT_UART_DEFAULT_BAUDRATE;
//默认38400 波特率;可以更改,但是可能有新问题,具体解释内容比较多,我不说。  
  uartConfig.flowControl          = MT_UART_DEFAULT_OVERFLOW;           
//禁止硬件流控,如果你的串口只有RXD,TXD 和 GND三条线,必须这么做。
  uartConfig.flowControlThreshold = MT_UART_DEFAULT_THRESHOLD;          
  uartConfig.rx.maxBufSize        = MT_UART_DEFAULT_MAX_RX_BUFF;
  uartConfig.tx.maxBufSize        = MT_UART_DEFAULT_MAX_TX_BUFF;
  uartConfig.idleTimeout          = MT_UART_DEFAULT_IDLE_TIMEOUT;
  uartConfig.intEnable            = TRUE;



——————————————————
串口发送 MT_UartProcessZToolData
——————————————————
UART
ASD

DASD





实验分三步(zigbee运作):
1. 串口初始化
2. 登记任务号
3. 串口发送

第一步:	串口初始化
配置窗口号、波特率、流控、校验位
	HAL\Target\CC2530EB\drivers 的 hal_uart.c 文件
	包括了串口初始化、发送、接收等函数
	
————
UART			通用异步收发传输器(RXD,TXD)
USART			追加同步序列信号(RXD,TXD,RTS,CTS)

DMA			直接存储器访问
ISR				中断服务程序
USB				通用串行总线


SampleApp_Init



【UART
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),
通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。
将资料由串行通信与并行通信间作传输转换,作为并行输入成为串行输出的芯片,
通常集成于其他通讯接口的连结上。
USART
在UART上追加同步方式的序列信号变换电路的产品,
被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。
】





halUARTCfg_t				串口通讯的配置 结构体


第二部:	登记任务号

MT_UartRegisterTaskID(task_id);	//登记任务号







第三部: 串口发送



SampleApp_Init();
	MT_UartInit();
	
MT_UartRegisterTaskID(task_id);

HalUARTWrite(0,"Hello World\n",12);	//(串口 0, '字符', 字符个数)
	ZIGBEEPRO ZTOOL_P1
	MT_TASK MT_SYS_FUNC MT_ZDO_FUNC
	
	
	
	
	
	
	
	

	
name	寄存器	位	名称	复位	R / W	描述	备注
PxSEL	端口x功能选择寄存器	7:0		0x00		【通用I/O】外设I/O	P2SEL.3-7不是功能选择寄存器
P2SEL	端口1外设优先级控制寄存器
PxDIR	方向选择寄存器	7:0				【输入】输出
PxINP	端口x输入模式	7:0				【上拉/下拉】三态	P1INP.0保留|P2INP.5-7【上拉】下拉
IENx	中断使能寄存器
PxIEN	端口x中断使能寄存器
PxIFG	中断状态标志寄存器
PICTL	中断控制寄存器
PERCFG	外设控制寄存器
CLKCONCMD	时钟控制命令寄存器
CLKCONSTA	时钟控制状态寄存器
PCON	供电模式控制寄存器
SLEEPCMD	睡眠模式控制寄存器
SLEEPSTA	睡眠模式状态寄存器
UxCSR-USARTx	UART 控制和状态 寄存器
UxUCR-USARTx	UART 控制寄存器 寄存器
UxDBUF-USARTx	接收/传送数据缓存寄存器
BUAD_M	波特率控制寄存器
UxGCR	UART 通用控制寄存器
TCON	中断标志寄存器
IRCON2	中断标志寄存器










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值