STM32移植letter-shell
Posted 旧年不在666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32移植letter-shell相关的知识,希望对你有一定的参考价值。
STM32移植letter-shell
一、平台
二、源码
三、串口配置
四、文件移植
-
添加文件到工程中
-
移植底层串口相关接口
/** * @file shell_port.c * @author Letter (NevermindZZT@gmail.com) * @brief * @version 0.1 * @date 2019-02-22 * * @copyright (c) 2019 Letter * */ #include "shell_port.h" Shell shell; char shellBuffer[512]; uint8_t letter_shell_recv_buff = 0; /** * @brief 用户shell写 * * @param data 数据 */ void userShellWrite(char data) { HAL_UART_Transmit(&huart1, (uint8_t *)&data, 1, 1000); } #if 0 /** * @brief 用户shell读 * * @param data 数据 * @return char 状态 */ signed char userShellRead(char *data) { if (serialReceive(&debugSerial, (uint8_t *)data, 1, 0) == 1) { return 0; } else { return -1; } } #endif /** * @brief 用户shell初始化 * */ void userShellInit(void) { HAL_UART_Receive_IT(&huart1, &letter_shell_recv_buff, 1); shell.write = userShellWrite; #if 0 shell.read = userShellRead; #endif shellInit(&shell, shellBuffer, 512); } /****************************************************************************** * @Function: letter_shell_recv_irq_handler * @Description: letter-shell接收数据处理 * @Input: void * @Output: None * @Return: void * @Others: 此函数需要在对应的串口接收中断中被调用 * @param {UART_HandleTypeDef} *huart *******************************************************************************/ void letter_shell_recv_irq_handler(UART_HandleTypeDef *huart) { shellHandler(&shell, letter_shell_recv_buff); HAL_UART_Receive_IT(huart, &letter_shell_recv_buff, 1); }
/** * @file shell_port.h * @author Letter (NevermindZZT@gmail.com) * @brief * @version 0.1 * @date 2019-02-22 * * @copyright (c) 2019 Letter * */ #ifndef __SHELL_PORT_H__ #define __SHELL_PORT_H__ #include "usart.h" #include "shell.h" extern Shell shell; void userShellInit(void); void letter_shell_recv_irq_handler(UART_HandleTypeDef *huart); #endif
-
以上移植完成后,调用初始化函数即可
letter_shell_init();
五、效果如下
六、参考文档
以上是关于STM32移植letter-shell的主要内容,如果未能解决你的问题,请参考以下文章
如何将带有 SPL 的 STM32F3 代码移植到 STM32F7
stm32f407移植ucos怎么把ucos放在stm32上?
STM32怎么移植UCLinux-STM32-F0/F1/F2专区