OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2561|回复: 3

有关于STM32F103串口通信的协议问题

[复制链接]

5

主题

16

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-9-17
在线时间
16 小时
发表于 2016-9-17 09:36:57 | 显示全部楼层 |阅读模式
原子哥,还有各位路人朋友,我想请问一个串口的问题……就是原子哥自定了协议,通过数组弄了一个接收状态寄存器:USART_RX_STA,协议在接收时的 “\r\n”中体现。
我又疑惑的是:
1、为什么这个数组能当寄存器使用,寄存器不应该属于芯片的内设吗?数组应该不具有硬件属性的,为什么接收到 \r\n,它的 bit 14个 bit 15会自动置1?这应该是要代码实现的吧?但是我没找到………………
2、这个 “\r\n” 是人为发送时添加的吗?比如说我在串口助手中,按下发送的“enter”键,就会发出这个“\r\n”吗?因为我在代码中没看有发送回车换行字符,所以就这么想,希望有人解答,谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

16

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-9-17
在线时间
16 小时
 楼主| 发表于 2016-9-17 09:37:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-9-17
在线时间
16 小时
 楼主| 发表于 2016-9-17 09:41:22 | 显示全部楼层
u16 USART_RX_STA=0;       //½óêÕ×′쬱ê¼Ç          
  
void USART1_IRQHandler(void)
{
        u8 res;       
        if(USART1->SR&(1<<5))//&#189;óê&#213;μ&#189;êy&#190;Y
        {         
                res=USART1->DR;
                if((USART_RX_STA&0x8000)==0)//&#189;óê&#213;&#206;′íê3é
                {
                        if(USART_RX_STA&0x4000)//&#189;óê&#213;μ&#189;á&#203;0x0d
                        {
                                if(res!=0x0a)USART_RX_STA=0;//&#189;óê&#213;′í&#206;ó,&#214;&#216;D&#194;&#191;aê&#188;
                                else USART_RX_STA|=0x8000;        //&#189;óê&#213;íê3éá&#203;
                        }else //&#187;1&#195;&#187;ê&#213;μ&#189;0X0D
                        {       
                                if(res==0x0d)USART_RX_STA|=0x4000;
                                else
                                {
                                        USART_RX_BUF[USART_RX_STA&0X3FFF]=res;
                                        USART_RX_STA++;
                                        if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//&#189;óê&#213;êy&#190;Y′í&#206;ó,&#214;&#216;D&#194;&#191;aê&#188;&#189;óê&#213;          
                                }                 
                        }
                }                                                                                                
        }
}
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2016-9-17
在线时间
16 小时
 楼主| 发表于 2016-9-17 09:52:19 | 显示全部楼层
谢谢,第二问问题知道了。但是第一个问题还是不明了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 08:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表