为什么在keil MDK中stm32程序最后一行要求空行?

为什么在keil MDK中stm32程序最后一行要求空行?,第1张

C 语言是在 Unix 中桥樱发明的,为 Unix 系统的编程语言,它对文件的处理遵循一个基本的原则:

文件是流式的,可以被任意的拼接并且拼接后仍然保证完整性

在 Unix 中 \n 符号被定义为一扰消瞎行的『结束符』,换句话说,如果一行的结尾没有 \n 视为这一行没有结束,换句话说这个文件不完整,也就是说这根本不是一缓空个合法的文本文件。

在 Windows 中,微软把 \n 定义为两行之间的『分隔符』而非结束符,所以 Unix 文件结尾的 \n ,在 Windows 看起来就是一个空行,而这一个空行在 Unix 中并不存在,如果你使用 Vim 之类的文本编辑器,会根本看不到最后这个空行。

不遵守标准会带来的问题是:如果 \n 是两行之间的分隔符,那么最后一行不带 \n,结果是拼接两个文件时,后一个文件的第一行就会被拼到前一个文件的最后一行,这很可能会造成语意错误。

比较常见的例子是:

前一个文件最后一行是 } 后一个文件第一行是 #include,如果 } 后面没有结束符,拼接之后就成了 }#include ,立即发生语法错误。

程序中的逻辑错误。

STM32串核洞侍口快速发送空字符串的原因,程序中的逻辑错误:在程序中可能颤弯存在逻辑错误,导致串口在没改吵有接收到数据的情况下不停地发送空字符串。

STM32串口是指STMicroelectronics公司生产的STM32系列单片机上的串行通信接口,STM32串口通常包括USART、UART和SPI等几种不同的接口类型,其中USART和UART是最常用的两种。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12389971.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存