串口不能发送八位数据

2019-07-20 22:01发布

在原子哥的例程上修改的,想通过串口1发送八位数据。但是最大只能发送0x7f。发送0x7f以上的数据,在串口调试助手收到的都是0x3f。usart.c未做任何修改,只改了主函数中的部分。求解原因,谢谢

以下为代码内容
int main(void)
{               
        u16 times=0;
        int senddata=0xff;
        delay_init();          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(115200);         
        LED_Init();               
        while(1)
        {
                       
                        USART_SendData(USART1, senddata);
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
                        if(times%30==0)LED0=!LED0;
                        delay_ms(1000);   
        }         
}


以下为串口调试助手截图
串口调试助手截图 串口调试助手截图
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-20 23:05
慕容陌尘 发表于 2016-5-24 14:42
补充一下,ATKXCOM V1.2有问题,V2.0测试没问题

XCOM的bug,用最新的XCOM
龙之谷
2楼-- · 2019-07-21 02:23
16进制发送
zdfwyh
3楼-- · 2019-07-21 07:57
 精彩回答 2  元偷偷看……
aisini
4楼-- · 2019-07-21 10:04
 精彩回答 2  元偷偷看……
慕容陌尘
5楼-- · 2019-07-21 12:10
aisini 发表于 2016-5-24 13:14
你看看串口初始化程序,是否配置了奇偶检验,如果数据长度为8,加上奇偶校验的话,肯定就只能发送出7位有效 ...

没有配置奇偶校验呀
慕容陌尘
6楼-- · 2019-07-21 16:33
龙之谷 发表于 2016-5-24 10:59
16进制发送

没有用串口调试助手发送,程序里给变量赋值了

一周热门 更多>