我的芯片是不是坏了

2019-03-23 17:51发布

为什么我发送数据 USART DR寄存器一直为零 DEBUG看的
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
lcofjp
1楼-- · 2019-03-24 03:03
 精彩回答 2  元偷偷看……
大家都是好朋友
2楼-- · 2019-03-24 09:02
lcofjp 发表于 2017-1-16 20:53
你Debug看到的并不是发送数据用DR,DR看似一个,其实有两个,你发送用的那个DR是只写的,没办法读取,而你 ...

哦 明白了 ,我还想问个串口问题 我本想发两个数给上位机,开始我已经CLEAR TC
然后
for(t=4;t<6;t++)
                {
                                //while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
                            
                                USART_SendData(USART1, BUF[t]);         //向串口1发送数据
                                while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结                       
                        }  可我只收到一个数
我在FOR前面改,加多个发送,还是只有一个数
我又在FOR前面改,加了句
USART_SendData(USART1, 'b');   
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
这样又收到了3个数,我很晕。。。

lcofjp
3楼-- · 2019-03-24 10:45
大家都是好朋友 发表于 2017-1-16 21:32
哦 明白了 ,我还想问个串口问题 我本想发两个数给上位机,开始我已经CLEAR TC
然后
for(t=4;t

我建议你还是按常规套路来,判断TXNE标志比较好。改完之后再调
大家都是好朋友
4楼-- · 2019-03-24 14:58
 精彩回答 2  元偷偷看……
Li_Lei
5楼-- · 2019-03-24 20:10
那个是正常的,发送出去的数据是读DR是读不出来的
lcofjp
6楼-- · 2019-03-24 21:27
大家都是好朋友 发表于 2017-1-16 21:41
而且我初始化了USART  TC还是在置位
那个TXE是发送完成中断是吧。我是看教程才这么写的

我建议你别看教程了,看看官网的Reference Manual的相关章节吧,哪个位在什么情况下置位或者复位,里面描述的很详细

一周热门 更多>