# morse **Repository Path**: RT-Thread-Mirror/morse ## Basic Information - **Project Name**: morse - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-02-26 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # morse ## 介绍 摩尔斯电码(英语:Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。 摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代码,它的代码包括五种: 1. 点(·):1 2. 划(-):111 3. 字符内部的停顿(在点和划之间):0 4. 字符之间的停顿:000 5. 单词之间的停顿:0000000 ### 时间控制和表示方法 有两种“符号”用来表示字符:点(·)和划(-),或叫“滴”(dit)和“答”(dah)。点的长度决定了发报的速度,并且被当作发报时间参考。下面是时间控制的图示: ```text -- --- ·-· ··· · -·-· --- -·· · M O R S E C O D E ``` 这里,“-”表示划,“·”表示点。这是上面消息的准确发报时间(=表示有信号,.代表无信号,每个为一个点的长度): ```text ===.===...===.===.===...=.===.=...=.=.=...=.......===.=.===.=...===.===.===...===.=.=...= ^ ^ ^ ^ ^ | 划 点 | 单词间隔 点划间隔 字符间隔 ``` 划一般是三个点的长度;点划之间的间隔是一个点的长度;字符之间的间隔是三个点的长度;单词之间的间隔是七个点的长度。 初学者往往被教导发送点划间隔短小、短而快的字符,并且在符号和单词之间夸大间隔时间。比较起来,这种方式更加容易学会。 熟悉摩尔斯码的人之间经常像这样说话或拼写(其中,“长音 / Dah”是发“awe”的音): -- --- ·-· ··· · / -·-· --- -·· · DahDah DahDahDah DiDahDit DiDiDit Dit, DahDiDahDit DahDahDah DahDiDi Di. ### 基础拉丁字母 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | | A | `·-` | B | `-···` | C | `-·-·` | D | `-··` | E | `·` | F | `··-·` | G | `--·` | | H | `····` | I | `··` | J | `·---` | K | `-·-` | L | `·-··` | M | `--` | N | `-·` | | O | `---` | P | `·--·` | Q | `--·-` | R | `·-·` | S | `···` | T | `-` | U | `··-` | | V | `···-` | W | `·--` | X | `-··-` | Y | `-·--` | Z | `--··` | | | | | ### 数字 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | | 1 | `·----` | 2 | `··---` | 3 | `···--` | 4 | `····-` | 5 | `·····` | | 6 | `-····` | 7 | `--···` | 8 | `---··` | 9 | `----·` | 0 | `-----` | ### 标点符号 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | | . | `·-·-·-` | : | `---···` | , | `--··--` | ; | `-·-·-·` | ? | `··--··` | = | `-···-` | | ' | `·----·` | / | `-··-·` | ! | `-·-·--` | - | `-····-` | _ | `··--·-` | " | `·-··-·` | | ( | `-·--·` | ) | `-·--·-` | $ | `···-··-` | & | `·-···` | @ | `·--·-·` | + | `·-·-·` | ### 特殊符号 | 符号 | 代码 | 意义 | shell 中意义| | :-: | :-: | :-: | :-: | | HH | `········` | 表示“有错,从上一字重新开始”。 | 退格(\b) | | SK | `···-·-` | 表示终止(联系结束)。 | 回车(\n) | ## 使用 Morse ### API 介绍 1. 初始化 morse ```c void morse_init(); ``` 2. morse 信号输入 ```c void morse_input(rt_bool_t flag); ``` 通过 morse_input 来实现信号的输入功能,可以接收任何形式的信号输入,通过判断输入 1 的时间来完成对 morse code 的解析。 通过使能 PKG_USING_MORSE_SHELL 可以实现输入命令并运行 shell 指令的目的 ## 联系方式 & 感谢 - 维护:zhkag - 主页:https://github.com/zhkag/morse - 邮箱:zhkag@foxmail.com