关于USART_SendData函数发送的数据类型

2019-07-21 06:59发布


USART_SendData(USART1,1);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); 
USART_SendData(USART1,2);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); 

这样显示拐角符号  ?     ?       ?
发送其他数也会显示不同的符号,或数字
如果发送字符‘a’  ’b’会正确显示

这个函数只能发送单个字符或数字?  发送数字以什么规则与显示对应??

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
Passenger123
1楼-- · 2019-07-22 22:18
Passenger123 发表于 2017-7-9 12:05
老铁,你这个程序在串口助手里面能显示出来吗,我的程序和你差不多,怎么在串口上没有现显示??

程序是这样的

         while(1)
                 {
                                for(i=0;i<5;i++)
                                {        USART_SendData(USART1,j);
                                        while(USART_GetFlagStatus(USART1, USART_FLAG_TC));
                                        delay(2);
                                }
                 }
         
刺客_奋斗的菜鸟
2楼-- · 2019-07-22 22:56
 精彩回答 2  元偷偷看……
super910906
3楼-- · 2019-07-23 04:00
刺客_奋斗的菜鸟 发表于 2017-7-12 10:33
请问,怎么用这个发送函数发送一个结构体数据?

memcpy(&Rec_Ctl.Parameter[0],&RxTmpBuf[6],9);
USART3_SendCommand((uint8_t *)&Rec_Ctl,22);
Rec_Ctl,这是一个发送应答结构体,其实结构体跟数组的逻辑是一样的,只要把结构体的赋值做好,直接调发送函数去发就好了,强转化成uint8_t类型的就行了。
刺客_奋斗的菜鸟
4楼-- · 2019-07-23 07:41
本帖最后由 刺客_奋斗的菜鸟 于 2017-7-12 15:14 编辑
super910906 发表于 2017-7-12 10:54
memcpy(&Rec_Ctl.Parameter[0],&RxTmpBuf[6],9);
USART3_SendCommand((uint8_t *)&Rec_Ctl,22);
Rec_Ct ...
我是这样写的:
typedef struct{
    u8  num;
    u8 data[2];
}Temp;
Temp tem;
int main(void)
{
     u8  i,len;
     tem.num = 10;
     tem.data[0] = 50;
     tem.data[1] = 30;         
     ...................// 此处串口初始化省略
     len = sizeof(tem);
     while(len--){
         USART_SendData(USART1,(u8)&tem+i);
         while(USART_GetFlagStatus(USART1, USART_FLAG_TC));
    }
    while(1){
    }
}
但是打印出来的内容不是我对结构体成员赋的值。

wk123
5楼-- · 2019-07-23 10:29
必须发送数组吗
wk123
6楼-- · 2019-07-23 14:53
USART_SendData()第二个 入口参数必须是数组的形式吗  例如USART_SendData(USART1, USART_RX_BUF[t])                   ,,,,,,可以直接这样么USART_SendData(USART1, 1)        


一周热门 更多>