本帖最后由 djz1992 于 2016-5-12 15:36 编辑
我之前用过的这个GPRSsend函数发送unsigned int a【4】这个数组,是可以的
最近我在用显示屏的时候需要发送一个字符串“SBC(52);DS16(50,20,'???V',4,0);
”,
用sprintf(buf,"SBC(52);DS16(50,20,'%.3fV',4,0);
",vlotage);来把float的电压值变作一个字符串,放到buf数组里
但是出现报错
就算我把buf写成固定的四个数的数组,还是不可以,这是为什么呢?
问题
1.如上
2.直接发送一个字符串该怎么写?UART_Send("12345",5) 这样吗?
这是我的报错
UARTcharput和UARTCharPutNonBlocking()的区别就是后者有返回是否正确存入fifo,有true和false的返回值,其他没什么区别。也许我可以用UARTCharPutNonBlocking()来看看是不是返回的false
void UARTCharPut(uint32_t ui32Base,unsigned char ucData),这是函数的申明,为什么我用 *数组名++ 这样的表达方式会报错?
*不是取值么?数组名不是首地址么,*数组名,不就是取出的一个unsigned char的值么,为什么报错呢
- UARTprintf(" Input Pin: Internal temperature sensor
");
复制代码你可以看看这个函数的原型,就知道字符串如何发送了。
至于你为什么报错,要看你的报错提示信息,无法判断。
单个字符的发送,可以用
- UARTCharPut
- UARTCharPutNonBlocking
复制代码这两个函数。
UARTCharPut(UART2_BASE, *buf++); ????? buf 是数组,不是指针,注意语法;
可以这样
uint8_t __buf__[4];
uint8_t *buf = __buf__;
UARTCharPut(UART2_BASE, *buf++);
但不能让数组++
为什么debug里的run里的clock的子项目都是灰 {MOD}的?不能够enable
另外也不能看函数的运行时间,不能打勾,说无法enable。这是为什么呢
一周热门 更多>