OpenEdv-开源电子网

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

关于MINI板的串口例程问题,请帮忙解答,谢谢

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-11-19
在线时间
0 小时
发表于 2013-11-23 22:11:31 | 显示全部楼层 |阅读模式
主函数如下:(ALIENTEK MINISTM32 实验3 串口实验)
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "key.h"
#include "led.h"

int main(void)
{
u8 t;
u8 len;
u16 times=0;
Stm32_Clock_Init(9);
delay_init(72);
uart_init(72,9600);
LED_Init();

while(1)
{
if(USART_RX_STA&0X40)
{
len = USART_RX_STA & 0x3f; //得到此次接受数据的长度
printf("\n 发送的信息为 : \n");
for(t=0;t<len;t++)
{
USART1->DR = USART_RX_BUF[t];
while((USART1->SR&0X40)==0); //等待发送结束
}
printf("\n\n");
USART_RX_STA = 0;
}else
{
times++;
if(times%5000==0)
{
printf("\nMiniSTM32 ???  ????\n");
printf("????@ALIENTEK\n\n\n");
}
if(times%200==0)printf("请发送数据\n");  
if(times%30==0)LED0=!LED0;
delay_ms(10);  
}
}
}


运行后,只能看到发送的数据:“请发送数据”

从PC上发送的信息看不到

在USART.H中

extern u8 USART_RX_BUF[64];     //接收缓冲,最大63个字节.末字节为换行符 
extern u8 USART_RX_STA;         //接收状态标记

//如果想串口中断接收,请不要注释以下宏定义
#define EN_USART1_RX //使能串口1接收

只是这样定义了一下就可以了吗,这个我不是很清楚,因为我在参考手册中并没有找到 USART_RX_BUF 和 USART_RX_STA 的信息,所有我想,只是这样定义是不是不够完整,相当于只是定义了两个计算机不知道是用来做什么的变量

请帮忙解答,万分感谢













正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-11-19
在线时间
0 小时
 楼主| 发表于 2013-11-23 23:55:44 | 显示全部楼层
回复【楼主位】Damon:
---------------------------------
已经想明白了,呵呵,因为在 usart.c 中有如下代码:
void USART1_IRQHandler(void)
{
u8 res;     
if(USART1->SR&(1<<5))//接收到数据
{  
res=USART1->DR; 
if((USART_RX_STA&0x80)==0)//接收未完成
{

if(USART_RX_STA&0x40)//接收到了0x0d
{
if(res!=0x0a)USART_RX_STA=0;//接收错误,重新开始
else USART_RX_STA|=0x80; //接收完成了 
}else //还没收到0X0D
{
if(res==0x0d)USART_RX_STA|=0x40;
else
{
USART_RX_BUF[USART_RX_STA&0X3F]=res;
USART_RX_STA++;
if(USART_RX_STA>63)USART_RX_STA=0;//接收数据错误,重新开始接收   
}  
}

}          
}    


应该是抓取回车符的,呵呵

但我还是有些不明白的,这个函数式如何触发的呢???
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-24 11:22:51 | 显示全部楼层
回复【楼主位】Damon:
---------------------------------
发送回车了么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 17:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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