- /*******************************************************************************
- * [url=home.php?mod=space&uid=247401]@brief[/url]
- * @param
- * @retval
- * [url=home.php?mod=space&uid=93590]@Attention[/url]
- *******************************************************************************/
- void RTT_Init(void)
- {
- /* 配置通道0,上行配置(N32->RTT Viewer) */
- SEGGER_RTT_ConfigUpBuffer(0, "RTTUP", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
-
- /* 配置通道0,下行配置(RTT Viewer->N32) */
- SEGGER_RTT_ConfigDownBuffer(0, "RTTDOWN", NULL, 0, SEGGER_RTT_MODE_NO_BLOCK_SKIP);
- MultiTimerStart(&RTT_MultiTimer, 5, RTT_MultiTimerCallback, "RTT");
- }
- /*******************************************************************************
- * @brief
- * @param
- * @retval
- * @attention
- *******************************************************************************/
- void RTT_MultiTimerCallback(MultiTimer *timer, void *userData)
- {
- /* 判断接收缓冲区中是否有数据 */
- if(SEGGER_RTT_HasKey())
- {
- /* 从接受缓冲区中取出一个字符 */
- int GetKey = SEGGER_RTT_GetKey();
- /* 读取的字符通过RTT输出 打印 */
- SEGGER_RTT_SetTerminal(1);
- SEGGER_RTT_printf(0, "SEGGER_RTT_GetKey = %c\r\n\r\n", GetKey);
- }
- MultiTimerStart(&RTT_MultiTimer, 5, RTT_MultiTimerCallback, "RTT");
- }
- /*******************************************************************************
- * @brief
- * @param
- * @retval
- * @attention
- *******************************************************************************/
- void RTT_PrintTest(void)
- {
- SEGGER_RTT_WriteString(0, "N32G45XVL-STB, Hello World!\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_CLEAR);
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_RED "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_GREEN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_YELLOW "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BLUE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_MAGENTA "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_CYAN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_WHITE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_RED "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_GREEN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_YELLOW "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_BLUE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_MAGENTA "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_CYAN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(1, RTT_CTRL_TEXT_BRIGHT_WHITE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_CLEAR);
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BLACK "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_RED "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_GREEN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_YELLOW "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BLUE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_MAGENTA "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_CYAN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_WHITE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_BLACK "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_RED "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_GREEN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_YELLOW "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_BLUE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_MAGENTA "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_CYAN "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- SEGGER_RTT_TerminalOut(2, RTT_CTRL_BG_BRIGHT_WHITE "N32G45XVL-STB & SEGGER RTT Viewer!\r\n\r\n");
- }
运行结果
在打开SEGGER RTT Viewer软件时,需要做如下的配置:
- J-LINK是通过USB与PC进行连接的,所以Connection to J-Link应当选择USB
- 在Specify Target Device项中,应当选择MCU的具体型号,若找不到对应的型号,可以根据MCU的内核来进行选择
- Script file是一个可选项,我们这边为空
- Target Interface & Speed项根据硬件连接来进行配置,我们使用的是SWD接口,所以这边应当选择SWD,并选择默认的4000kHz
- 最后RTT Control Block这一项有两个选择,一个是Address,在下面需要填写具体变量在SRAM中的地址;另一项是Search Range,这个由J-Link自动去搜索,但下面需要填写芯片SRAM的起始地址和空间大小,需要与MCU一致
显示视频
软件工程源代码
Template.zip
(1.2 MB, 下载次数: 28)