OpenEdv-开源电子网

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

串口调试出现非常怪异的问题---期待原子哥指点

[复制链接]

2

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2011-6-12
在线时间
0 小时
发表于 2011-6-19 04:10:30 | 显示全部楼层 |阅读模式

extern u8 USART_RX_BUF[10];

void hanld_tx(u8 *TEMP)
{
  USART1->DR=(*TEMP);
  TEMP++;
  while(USART1->SR&0X04==0);
 
}
u8 cnt=0; 
extern u8 flag_rx;
u8 USART_RX_BUF[10];     //接收缓冲,最大64个字节.
void USART1_IRQHandler(void)   //状态寄存器(USART_SR)对这个寄存器进行相应的判断
{  
   if(USART1->SR&(1<<5))//接收到数据
    { 
   USART_RX_BUF[cnt]=USART1->DR;
   cnt++;
   if(cnt>=10)
    {
   cnt=0;
   flag_rx=1;
    }     
 }             
}
int main(void)
{
  Stm32_Clock_Init(9);
  delay_init(72);
  uart_init(72,9600);
  delay_ms(10);
  while(1)
   {
     if(flag_rx)
   {
     flag_rx=0;
   hanld_tx(USART_RX_BUF);
   }
   }
}
思路:向串口发送10个字节 接收到显示到串口上
问题1;发送10个字节不能正常显示 显示出错而且并不是显示10个字节
问题2;我是1秒发送10个字节用中断 但是在串口显示1秒显示1个字节数据正确(只是显示前面9个)正确的显示应该是1秒到了应该刷新10个字节
问题3:当我接收和发送数据大小设置为10个字节时候 而我确发送9个字节给单片机 只能显示9个并且数据正确 如果我发送10个的话 会出现问题的结果
问题4:我在uart.c文件中定义了u8 USART_RX_BUF[10];     在主文件中做了外部变量引用 但是我修改主文件中 USART_RX_BUF数据包达小时候 编译却能通过
一晚上都无法解决 希望的到原子哥或则 知道的高人指点
谢谢 今天是父亲节 记得给幸苦的老爸打电话哈

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

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2011-6-12
在线时间
0 小时
 楼主| 发表于 2011-6-19 22:50:51 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-6-20 08:42:02 | 显示全部楼层
回复【2楼】zhanmcu:
---------------------------------
解决了就好.昨天一天上不了网,郁闷....
谁在广州的,千万别拉少队网络/羊城宽带之类的网络了,深受其害....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 19:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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