CC2530串口工作

时间:2022-04-12 15:47:33

前言

嘿嘿,我只是写给我自己的一篇博客,今天研究了一天的CC2530,感觉好累,虽然是已经落伍的技术了,但是我觉得不要小看它,还是能够学到点东西的,随着学习的深入,渐渐感觉有点突破的苗头了!哈哈

CC2530的串口设置

首先,看到的是HAL层,也就是硬件层,Target底下的是hal_uart.c,这就是串口的底层文件。不过不要着急,这些都是不需要太过关心,只要记住一个API就行了!

uint16 HalUARTWrite(uint8 port, uint8 *buf, uint16 len)

port 端口

buf 数据

len 数据长度

因为我们有MT层,那么MT_UART.C就是我们最重要的串口配置文件!

在其中我们可以找到MT_UartInit():

/* UART Configuration */
uartConfig.configured = TRUE;
uartConfig.baudRate = MT_UART_DEFAULT_BAUDRATE;//波特率设置
uartConfig.flowControl = MT_UART_DEFAULT_OVERFLOW;//数据流控
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_uart.h中,可以对串口进行相应的配置

	#if !defined( MT_UART_DEFAULT_OVERFLOW )
#define MT_UART_DEFAULT_OVERFLOW FALSE//TRUE数据流控
#endif
#if !defined MT_UART_DEFAULT_BAUDRATE
#define MT_UART_DEFAULT_BAUDRATE HAL_UART_BR_115200//HAL_UART_BR_38400
#endif

CC2530的网段分析

在TOOL层下的f8wConfig.cfg,可以看到

/* Define the default PAN ID.
*
* Setting this to a value other than 0xFFFF causes
* ZDO_COORD to use this value as its PAN ID and
* Routers and end devices to join PAN with this ID
*/
-DZDAPP_CONFIG_PAN_ID=0xFFF0//作为网段进行修改原来就是0xffff

如何实现z-stack的串口

首先在APP层的SampleApp.c找到SampleApp_Init()。

  SampleApp_TaskID = task_id;
SampleApp_NwkState = DEV_INIT;
SampleApp_TransID = 0;
MT_UartInit ();//如上所说的MT串口初始化
MT_UartRegisterTaskID(task_id);//挂载ID

那么我们可以使用HalUARTWrite()这个函数了,哈哈

HalUARTWrite(0,"hello\n",6);

好了,那么现在我们就可以使用串口了!

如何去除LCD在串口中的显示

我今天搞这个搞的很烦,因为不知道它直接为什么,又不在代码中实现,于是就悲剧了,调了好久才摸到原来可以直接在option里面把它屏蔽了!

iar - project - option - c/c++compiler - preprocessor 里面把MT层中的LCD全部干掉就是了!

xMT_TASK
xMT_SYS_FUNC
xMT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG``` 最后我也在我的github上共享了我写的demo!欢迎观看!