OpenEdv-开源电子网

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

STM32怎么与人机界面通讯?

[复制链接]

3

主题

10

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-1
在线时间
5 小时
发表于 2014-8-1 19:46:06 | 显示全部楼层 |阅读模式
5金钱
发送数据包还行,不知怎么接收屏返回的数据包?数据格式 5A A5 06 83 00 01 01 00 06  .我用寄存器写程序的,新手,搞了一个星期还没搞出来,求助高手点拨!5A A5帧头,06数据长度,83命令,00 01屏内数据寄存器地址,01数据个数,00 06数据。我把MINIE实验板的串口程序改了下,读到的数据是00 00 00 00 00 00 00 00 06;为什么只能读到最后一个数?

最佳答案

查看完整内容[请看2#楼]

回复【2楼】山上的风: ---------------------------------  采用超时的方法接收
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-1 19:46:07 | 显示全部楼层
回复【2楼】山上的风:
---------------------------------
 采用超时的方法接收
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-1
在线时间
5 小时
 楼主| 发表于 2014-8-1 20:02:21 | 显示全部楼层
串口实验中是判断0D 0A作帧尾,而我的现在只有帧头5A A5 ,数据长度06,没有帧尾,怎么接收?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-1 23:46:42 | 显示全部楼层
参考我们蓝牙模块的例程,串口2的接收部分。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-1
在线时间
5 小时
 楼主| 发表于 2014-8-2 09:23:50 | 显示全部楼层
我想用通信协议的方法,触摸屏原带的程序是LPC1715芯片的,接收中断函数如下:
void UART1_IRQHandler(void) 
{
  uint8_t IIRValue;  
  
  IIRValue = LPC_UART1->IIR;   
  IIRValue >>= 1;     /* skip pending bit in IIR */
  IIRValue &= 0x07;     /* check bit 1~3, interrupt identification */

  if ( IIRValue == IIR_RDA ) /* Receive Data Available */
  {
while((LPC_UART1->LSR & 0x01) == 0x01) //缓存区是否含有有效接收的数据
{
dattmp = LPC_UART1->RBR;
LPC_UART0->THR = dattmp;                                                                                                                                                       

if(RXFRMOK==0)
{
if(RX5AOK)
{
if(RXA5OK)
{
rec[LEN]=dattmp;  
LEN++; 
if(LEN==(rec[0]+1))
{
RXFRMOK=1;
RX5AOK=RXA5OK=0;
}
}
else
{
if(dattmp==0xA5)
{
RXA5OK=1;
LEN=0;
}
}
}
else 
{
if(dattmp==0x5A)
{
RX5AOK=1;
}
}
}
}
  }
}
我想把这个程序该成STM32的,怎么改?感谢原子大哥的支持!
回复

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2014-8-1
在线时间
5 小时
 楼主| 发表于 2014-8-2 12:51:01 | 显示全部楼层
我在网上搜的函数版的STM32串口接收数据,我改成了寄存器版的,能收发数据,就是容易死机!不知是什么原因?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-4 20:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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