在RT-ThreadNano上添加控制台与FinSH.pdfVIP

  • 15
  • 0
  • 约1.08万字
  • 约 12页
  • 2021-11-08 发布于重庆
  • 举报
本片 文档 分为 两部 分 :第 一部 分是 实现 UART 控制 台, 该部 分 只 需要 实现 两个 数即 可 完成 UART 控制 台 打印 功能 。第 二部 分 是实 现移 植 FinSH 组 件, 实 现在 控制 台输 入命 令 调试 系统 ,该 部分 实 现基 于第 一部 分, 只需 要添 加 FinSH 组件 源码 并 再对 接一 个系 统函 数 即可 实 现。 下面 将对 这两 部 分进 行说 明。 在 Nano 上添加 UART 控制台 在 RT-Thread Nano 上 添加 UART 控制 台打 印功 能后 ,就 可 以在 代码 中使 用 RT-Thread 提供 的打 印函 数 rt_kprintf() 进 行信 息打 印, 从而 获取 自定 义 的打 印信 息, 方便 定 位代 码 bug 或者 获 取系 统当 前运 行状 态等 。实 现 控制 台打 印( 需要 确 认 rtconfig.h 中 已使 能 RT_USING_CONSOLE 宏 定义 ), 需要 完成 基本 的硬 件初 始 化, 以 及对 接一 个系 统输 出 字符 的函 数, 本小 节 将详 细说 明。 实现串口初始化 使用 串口 对接 控制 台 的打 印, 首先 需要 初 始化 串口 ,如 引脚 、 波 特率 等。 uart_init() 需 要在 board.c 中 的 rt_hw_board_init() 函数 中调 用。 1/* 实现 1 :初始化串口 */ 2static int uart_init(void); 示 例 代 码 :如下 是基 于 HAL 库 的 STM32F103 串 口驱 动, 完 成添 加控 制台 的示 例代 码, 仅 做参 考。 1static UART_HandleTypeDef UartHandle; 2static int uart_init(void) 3{ 4 /* 初始化串口参数,如波特率、停止位等等 */ 5 UartHandle.Instance = USART1; 6 UartHandle.Init.BaudRate = 115200; 7 UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; 8 UartHandle.Init.Mode = UART_MODE_TX_RX; 9 UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; 10 UartHandle.Init.WordLength = UART_WORDLENGTH_8B; 11 UartHandle.Init.StopBits = UART_STOPBITS_1; 12 UartHandle.Init.Parity = UART_PARITY_NONE; 13 14 /* 初始化串口引脚等 */ 15 if (HAL_UART_Init(UartHandle) != HAL_OK) 16 { 17 while(1); 18 } 19 20 return 0; 21} 22INIT_BOARD_EXPORT(uart_init); 1/* board.c */ 2void rt_hw_board_init(void) 3{ 4 5 uart_init(); // 在 rt_hw_board_init 函数中调用 串口初始化 函数 6 7} 实现 rt_hw_console_output 实现 finsh 组件输出一个字符,即在该函数中实现 uart 输出字符: 1/* 实现 2 :输出一个字符,系统函数,函数名不可更改 */ 2void

文档评论(0)

1亿VIP精品文档

相关文档