关于串口发送函数的问题

2019-07-22 16:29发布

本帖最后由 djz1992 于 2016-5-12 15:36 编辑

我之前用过的这个GPRSsend函数发送unsigned int a【4】这个数组,是可以的
3.jpg
最近我在用显示屏的时候需要发送一个字符串“SBC(52);DS16(50,20,'???V',4,0); ”,
用sprintf(buf,"SBC(52);DS16(50,20,'%.3fV',4,0); ",vlotage);来把float的电压值变作一个字符串,放到buf数组里
但是出现报错
1.jpg
就算我把buf写成固定的四个数的数组,还是不可以,这是为什么呢?
2.jpg

问题
1.如上
2.直接发送一个字符串该怎么写?UART_Send("12345",5)   这样吗?




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
djz1992
1楼-- · 2019-07-22 18:48
@xyz549040622 @dirtwillfly 两位大神,小弟又来了
mohanwei
2楼-- · 2019-07-22 21:23
查一下串口FIFO的长度……
假设是16字节,你一次发送4字节当然没问题,发送超过16字节就会溢出
还有你往一个4字节的buf里塞几十字节,会把buff后面定义的一堆变量都覆盖,鬼知道会出现什么后果
zhangbo1985
3楼-- · 2019-07-23 01:31
这个法送字符串的,末尾部分是不是需要再加上回车换行的呢?
dirtwillfly
4楼-- · 2019-07-23 07:22
楼上说的是。
你注意一下UARTCharPut这个函数,好像在发送完毕之前是不会返回的。
发送字符串也可以考虑用UARTCharPutNonBlocking()
djz1992
5楼-- · 2019-07-23 07:22
 精彩回答 2  元偷偷看……
djz1992
6楼-- · 2019-07-23 11:09
zhangbo1985 发表于 2016-5-12 17:11
这个法送字符串的,末尾部分是不是需要再加上回车换行的呢?

不就是回车换行么,这四个符号也是按字符发送的吧,我看见TI的案例里发字符串也没见要回车换行,这个发送函数有lenth这个长度控制,lenth--完毕就不会再发了

一周热门 更多>