串口传输数据发生错误的原因

问题1.

昨天用之前的方法处理好串口发送数据的程序,结果发现发送数据总是会发送错误一些数据,百思不得其解,结果发现是

因为没有给串口转接板提供电源以及没有和单片机共地。

问题2.


char buffer[];

void TIM2_IRQHandler(void)
{
/* USER CODE BEGIN TIM2_IRQn 0 */
time_count++;
// printf("%d\r\n",time_count);
sprintf(buffer,"aaaaaaaaaaaaaasdf%d\r\n",time_count);
buffer[strlen(buffer)]=0;
HAL_UART_Transmit(&huart1,(uint8_t *)buffer,strlen(buffer),10);
/* USER CODE END TIM2_IRQn 0 */
HAL_TIM_IRQHandler(&htim2);
/* USER CODE BEGIN TIM2_IRQn 1 */

/* USER CODE END TIM2_IRQn 1 */
}

发现刚开始一段时间,发送正常,一秒钟进一次中断,但是当time_count大于9的时候,就会不断地进入tim2中断函数,是什么原因的。

后来发现原来是字符串长度超过buffer的定义的长度了,至于为什么TIM2_IRQHandler()函数的参数有问题会导致定时器2会不断中断的原因尚不清楚。

但这个问题告诉我们,如果使用库函数,一定要保证它的参数没有任何问题,对于我们自定义的函数也是一样。

 
时间: 2024-10-14 07:08:26

串口传输数据发生错误的原因的相关文章

mysql 创建外键时发生错误的原因和解决方法

可以去网上查看错误号,就能知道到底哪里出错了 https://zhidao.baidu.com/question/359868536.html 这里1452对应的错误是因为建立外键的表中还有数据,所以外键建立失败,删除数据后再添加即可成功建立外键 原文地址:https://www.cnblogs.com/kinome/p/9051584.html

C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)方法抛出“基础连接已经关闭: 发送时发生错误”的解决办法

现象描述: C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)方法抛出“基础连接已经关闭: 发送时发生错误”. 原因分析: 大多数情况下是由于客户端所设置的HTTP访问请求的安全协议不符合服务器端的安全协议要求.比如,NASA提供瓦片服务的http://worldwind25.arc.nasa.gov/wms?service=WMS&v

[Troubleshooting]-Exchange 2013 OWA & ECP 发生错误 500意外错误

[摘要] 最近在Exchange 2013环境中,遇到OWA/ECP无法访问的问题:用户是可以正常通过Outlook 收发邮件,只有当访问OWA/ECP页面后,输入账户验证信息后,提示"出现意外错误,无法处理你的请求":    比较神奇的时,当前环境是总部7台Exchange 前端服务器,14台Exchange 后端服务器,分部2台全角色部署:几十台邮件服务器,开始时是总部一台后端服务器上的数据库的用户,在排错的过程中又出现了一台后端服务器上的用户无法正常使用OWA/ECP:此篇文章将

J2EE引擎出现java.lang.UnsatisfiedLinkError: CC错误的原因

运行JSP报表程序页面出现java.lang.UnsatisfiedLinkError: CC错误有以下几种原因和处理方法: 1.请查看控制台的错误信息 a:如果控制台的消息是类似 java.lang.UnsatisfiedLinkError: no MRChkLib in java.library.path,Error loading library MRChkLib 这样的错误信息,那么是因为MRChkLib.dll没有拷贝到windows的System32目录下. (MRChkLib.dl

Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析

(默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 "timeout" , "error" , "notmodified" 和 "parsererror" . error事件返回的第一个参数XMLHttpRequest有一些有用的信息: XMLHttpR

WCF 获取数据对象时,报“基础连接已经关闭: 接收时发生错误”

今天,在使用WCF返回一个对象时,遇到一个错误:基础连接已经关闭: 接收时发生错误.经过大半天的排查,原来是一个不起眼的东西在搞鬼: this.Configuration.ProxyCreationEnabled = true; 就是上面的代码中的 true 导致了程序报错,之后把 true 改成了 false 问题就解决了. 微软的官方对ProxyCreationEnabled的解释中这样阐述:即使使用此旗標來啟用 Proxy 建立,也只會針對符合進行 Proxy 處理需求的實體類型來建立 P

phpMyAdmin提示“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”

这是以前学生在使用phpwamp时遇到的一个问题(其他环境或是自己搭建时遇到此问题,解决方式同理) 其实这个问题与PHPWAMP本身无关,是电脑设置的问题,一般正常情况下不会出现这个问题. 现在把学生遇到的问题整理一下,发布成博文. 学生提问如下: 老师,求助啊,可能是phpwamp的配置文件被我搞乱了, 以前一切正常,换个电脑出现了问题.无论是用老师开发的PHPWAMP还是其他的php环境,在进入phpmyadmin时都会出现如下错误提示: "无法在发生错误时创建会话,请检查 PHP 或网站服

System.ServiceModel.CommunicationException: 接收HTTP 响应时发生错误

具体错误信息如下: System.ServiceModel.CommunicationException: 接收对 http://110.110.110.110/TestService/TestService.svc 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的.这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致.有关详细信息,请参见服务器日志. ---> System.Net.WebException: 基础连接已经关闭: 接收时发

HttpWebRequest 基础连接已经关闭: 接收时发生错误

HttpWebRequest request = null; Stream webStream = null; HttpWebResponse response = null; StreamReader reader = null; string responseString = ""; try { byte[] bf = Encoding.UTF8.GetBytes(postString); request = WebRequest.Create(url) as HttpWebReq