关于串口发送函数的问题

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-23 16:39
本帖最后由 djz1992 于 2016-5-13 08:37 编辑
dirtwillfly 发表于 2016-5-12 17:17
楼上说的是。
你注意一下UARTCharPut这个函数,好像在发送完毕之前是不会返回的。
发送字符串也可以考虑用U ...
这是我的报错 111.jpg
UARTcharput和UARTCharPutNonBlocking()的区别就是后者有返回是否正确存入fifo,有true和false的返回值,其他没什么区别。也许我可以用UARTCharPutNonBlocking()来看看是不是返回的false
void UARTCharPut(uint32_t ui32Base,unsigned char ucData),这是函数的申明,为什么我用  *数组名++  这样的表达方式会报错?
*不是取值么?数组名不是首地址么,*数组名,不就是取出的一个unsigned char的值么,为什么报错呢


xyz549040622
2楼-- · 2019-07-23 22:30
TIVA中的例程用的是
  1.     UARTprintf("  Input Pin: Internal temperature sensor ");
复制代码
你可以看看这个函数的原型,就知道字符串如何发送了。
至于你为什么报错,要看你的报错提示信息,无法判断。
单个字符的发送,可以用
  1. UARTCharPut
  2. UARTCharPutNonBlocking
复制代码
这两个函数。
hgjinwei
3楼-- · 2019-07-24 03:58
uint8_t buf[4];
UARTCharPut(UART2_BASE, *buf++); ????? buf 是数组,不是指针,注意语法;

可以这样
uint8_t __buf__[4];
uint8_t *buf = __buf__;
UARTCharPut(UART2_BASE, *buf++);

但不能让数组++
djz1992
4楼-- · 2019-07-24 07:32
 精彩回答 2  元偷偷看……
djz1992
5楼-- · 2019-07-24 09:32
xyz549040622 发表于 2016-5-13 09:32
TIVA中的例程用的是

你可以看看这个函数的原型,就知道字符串如何发送了。

为什么debug里的run里的clock的子项目都是灰 {MOD}的?不能够enable
另外也不能看函数的运行时间,不能打勾,说无法enable。这是为什么呢 22222.jpg

一周热门 更多>