MTK之UART串口收发数据
(必看)
https://blog.csdn.net/ivy_reny/article/details/51192110
MTK串口调试方法|MTK串口工具
MTK串口调试方法:
1. 对串口的设置:
1) uart.c 中UART_HWInit 完成对各串口的波特率、数据位等之类初始化设置。默认为115200。若需调整波特率则可在此处设置。也可调用U_SetBaudRate进行设置。
2) trace口的波特率设置如下在NVRAM_EF_PORT_SETTING_DEFAULT。
2. 串口的切换:
1) trace口的切换:
nvram_common_config.c 中
static kal_uint8 const NVRAM_EF_PORT_SETTING_DEFAULT[] =
{
#if defined(__ONLY_ONE_UART__)
0x63, 0x00, /* TST uses uart_port2(value is 1) */
0x00, 0x00, /* APP uses uart_port1 */
#else
0x00, 0x00, /* TST uses uart_port2(value is 1) */表示哪个串口作输出 Trace口, 0x01, 0x00, /* APP uses uart_port1 */表示哪个串口用于AT。
#endif
/*设置为 0x00则表示串口1设置为 Trace模式, 0x01表示串口2设置为Trace , 0x63表示不用Trace*/
#if defined(EMPTY_MMI)
0x00, 0x10, 0x0E, 0x00, /* tst default baud rate base = 921600 = 0x000E1000 */
#else
0x00, 0xC2, 0x01, 0x00, /* tst default baud rate base = 115200 = 0x0001C200 */
#endif
设置trace串口的波特率
#if defined (__GPRS_MODE__)
0x00, 0xC2, 0x01, 0x00, /* ps default baud rate base = 115200 = 0x0001C200 */
#else
0x00, 0xE1, 0x00, 0x00, /* ps default baud rate base = 57600 = 0x0000E100 */
#endif
设置at串口的波特率
0x00, /* High SpeedSIM */
0x00, /* SWDBG */
0x03, 0x63, /* uart power setting, plus 1-byte padding */
0x00, 0x00,0x00, 0x00 /* CTI baud rate */
};
0x03 -- 串口1、2 powner on
0x07-- 串口1、2 、3 powner on
这些设置也可在暗码“*#3646633#”中设置。
2) AT与普通串口的切换:
串口默认是为AT模式,默认都是被L4层控制的。
在初始化或使用串口前时设置UART_SetOwner(uart_port2,MOD_CUSTOM2);
即可将串口的at模式切换为普通串口。UART_SetOwner作用:相当于将串口同任务(task)绑定。 串口的收发处理均有此任务实现。
有数据来时,底层会发送MSG_ID_UART_READY_TO_READ_IND消息上来。用UART_GetBytes来读取串口接到的数据。用UART_PutBytes来发送数据。
3. 在plutommi里新添加文件,须在custom里调用。
1) 在make\plutommi里的
plutommi.inc 添加 头文件所在的目录
plutommi.pth 添加 源文件所在的目录
plutommi.lis 添加源文件的路径。
2) D16_GPRS.mak 添加
CUSTOM_COMMINC += plutommi\mmi\StarComm\Zigbee\ZigbeeInc
此处未添加,则在custom1_create.c里无法调用头文件,提示wouldn’t open *.h错误
4. 模块的休眠模式
在makefile文件里,如D16_GPRS.mak.
mtk_SLEEP_ENABLE = FALSE # Sleep Mode Support
置MTK_SLEEP_ENABLE为FALSE :彻底关闭休眠模式。
置MTK_SLEEP_ENABLE为TRUE :开启休眠模式的使能。
代码中调用L1SM_SleepDisable 、L1SM_SleepEnable 对休眠模式进行设置。
5. 现象:
串口收发正常,接上zigbee小板后,可监控到模块有往zigbee发的数据,但zigbee没有回应。 但在初次上电的时候,zigbee有回应数据至模块。(在下载模块程序时,zigbee有一直往模块发送数据)。
解决:
Zigbee小板上的重启接口被程序置为低电平(in),导致一直被重启。
MTK串口工具:
http://bbs.16rd.com/forum.php?mod=viewthread&tid=453286&fromuid=28165