first commit
This commit is contained in:
103
App/Src/LetterShell.c
Normal file
103
App/Src/LetterShell.c
Normal file
@@ -0,0 +1,103 @@
|
||||
#include "LetterShell.h"
|
||||
#include "shell.h"
|
||||
|
||||
#define WR_BUFFER_SIZE 512
|
||||
|
||||
/* 1. 创建shell对象,开辟shell缓冲区 */
|
||||
Shell Host; //Shell实例化
|
||||
char HostBuffer[WR_BUFFER_SIZE]; //读写缓冲区
|
||||
uint32_t HostId; //串口号
|
||||
|
||||
/**
|
||||
* @brief Shell写函数
|
||||
* @param ComId 串口号,ch 数据
|
||||
* @retval void
|
||||
* @note void
|
||||
* @example void
|
||||
*/
|
||||
signed short ShellWrite(char* ch, unsigned short Len)
|
||||
{
|
||||
UsartSendStr(HostId, (uint8_t* )ch,Len);
|
||||
return Len;
|
||||
}
|
||||
/**
|
||||
* @brief Shell读函数 - 中断回调实现
|
||||
* @param Vector 中断向量号
|
||||
* @retval void
|
||||
* @note void
|
||||
* @example void
|
||||
*/
|
||||
void LetterShellIrqFunc(uint32_t Vector)
|
||||
{
|
||||
uint8_t ch = 0x00;
|
||||
ch = UsartReceiveChar(Vector);
|
||||
|
||||
shellHandler(&Host, ch);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 初始化Shell
|
||||
* @param ComId 串口号,baud 波特率
|
||||
* @retval void
|
||||
* @note void
|
||||
* @example void
|
||||
*/
|
||||
void LetterShellInit(uint32_t ComId, uint32_t baud)
|
||||
{
|
||||
HostId = ComId;
|
||||
|
||||
//初始化串口
|
||||
UsartStdConfig(ComId, baud);
|
||||
//设置串口回调函数
|
||||
IntCbReg(TTY_COM_IRQN, LetterShellIrqFunc);
|
||||
//设置中断等级
|
||||
IntSetLevel(TTY_COM_IRQN,1,1);
|
||||
//注册写函数
|
||||
Host.write = ShellWrite;
|
||||
|
||||
shellInit(&Host, HostBuffer, WR_BUFFER_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 打印版本号
|
||||
* @param void
|
||||
* @retval void
|
||||
* @note void
|
||||
* @example void
|
||||
*/
|
||||
int version(void)
|
||||
{
|
||||
printf("%s\r\n",VERSION);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief DO控制
|
||||
* @param chnl 通道号 val状态值
|
||||
* @retval void
|
||||
* @note void
|
||||
* @example void
|
||||
*/
|
||||
void doSet(uint8_t chnl, uint8_t val)
|
||||
{
|
||||
IoCtl(IO_TYPE_DO, chnl, val);
|
||||
}
|
||||
/**
|
||||
* @brief DO控制反转
|
||||
* @param chnl 通道号
|
||||
* @retval void
|
||||
* @note void
|
||||
* @example void
|
||||
*/
|
||||
void doToggle(uint8_t chnl)
|
||||
{
|
||||
IoCtlToggleDo(chnl);
|
||||
}
|
||||
|
||||
//打印版本号
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), version, version, version);
|
||||
//控制DO
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), doSet, doSet, doSet);
|
||||
//反转DO
|
||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), doToggle, doToggle, doToggle);
|
||||
20
App/Src/main.c
Normal file
20
App/Src/main.c
Normal file
@@ -0,0 +1,20 @@
|
||||
/* MCU INCLUDE */
|
||||
#include "stm32f10x.h"
|
||||
/* BSP INCLUDE */
|
||||
#include "Bsp.h"
|
||||
/* OPEN_SOURCE_LIB INCLUDE */
|
||||
#include "LetterShell.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
//bsp初始化
|
||||
BspConfigInit();
|
||||
|
||||
//LetterShell初始化
|
||||
LetterShellInit(TTY_COM,115200);
|
||||
|
||||
while (1){
|
||||
IoCtlLedToggle(LED0);
|
||||
DelayMs(100);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user