OpenEdv-开源电子网

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

STM32发送十六进制数据问题

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2014-5-17
在线时间
0 小时
发表于 2014-5-17 15:37:50 | 显示全部楼层 |阅读模式
5金钱

本人用stm32串口连接一个加速度计,需要发送“0xFA 0x01 0x00 0x82 0x7B”后方可使能设备,设备之后才可以
传出数据。
求原子哥,大侠帮助,不胜感激。
(程序用串口助手验证(发送的数据也可以接收到),电平也没问题,硬件连接没问题,但是始终无法激发加速度计,个人觉得是发送指令数据

格式方面有问题)
程序如下:
主函数里如下:
   uint8_t send_AHRSO[5]={0xFA,0X01,0x00,0x82,0X7B};

   USART_PutHEX(USART1,send_AHRSO[0]);
  USART_PutHEX(USART1,send_AHRSO[1]);
  USART_PutHEX(USART1,send_AHRSO[2]);
  USART_PutHEX(USART1,send_AHRSO[3]);
  USART_PutHEX(USART1,send_AHRSO[4]);


void USART_PutHEX(USART_TypeDef* USARTx,uint8_t Data)
{
  USART_SendData(USARTx, Data);
  while(USART_GetFlagStatus(USARTx,USART_FLAG_TXE)==RESET);
}
  void USART1_IRQHandler(void)      //串口1 中断服务程序
{
uint32_t a;
a=0;
  if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)    //判断读寄存器是否非空
  { 
    
    RxBuffer1[RxCounter1] = USART_ReceiveData(USART1);   //将读寄存器的数据缓存到接收缓冲区里
USART_PutHEX(USART1,RxBuffer1[RxCounter1]);
RxCounter1++;

if(a==0 && RxCounter1==0x10) {GPIO_SetBits(GPIOB, GPIO_Pin_5); a=1; Delay(1000000);}         //通过灯的闪烁判断是否激发了加速度计
                 
else {GPIO_ResetBits(GPIOB, GPIO_Pin_5);a=0;  }
RxCounter1 &=0x0F;
if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)                   //这段是为了避免STM32 USART 
第一个字节发不出去的BUG 
  { 
     USART_ITConfig(USART1, USART_IT_TXE, DISABLE);          //禁止
发缓冲器空中断, 
  } 
  
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-17 20:55:07 | 显示全部楼层
那串口助手发送,试试了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2014-5-17
在线时间
0 小时
 楼主| 发表于 2014-5-19 17:17:53 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
用串口助手试验了可以激发加速度计。同时也将程序烧进去,可以成功的发到串口助手,可以显示出来。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-19 22:50:03 | 显示全部楼层
回复【3楼】businiao2014:
---------------------------------
那就是正常了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-1-26
在线时间
0 小时
发表于 2015-11-12 12:52:17 | 显示全部楼层
LZ问题解决了吗
回复

使用道具 举报

4

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-4-14
在线时间
6 小时
发表于 2016-4-14 20:03:54 | 显示全部楼层
请问楼主现在问题解决了吗,我现在也是这个问题,要发一串16进制数命令给传感器,用了和你类似的函数,在电脑通过串口调试助手数据可以显示,但是从开发板发到传感器就没有数据返回,不知道为什么
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2015-1-8
在线时间
1 小时
发表于 2017-10-22 21:51:37 | 显示全部楼层
你们的问题都是怎么解决的呢?
回复

使用道具 举报

35

主题

309

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2641
金钱
2641
注册时间
2016-8-10
在线时间
470 小时
发表于 2019-1-3 17:19:31 | 显示全部楼层
lnshd 发表于 2017-10-22 21:51
**** 作者被禁止或删除 内容自动屏蔽 ****

请问你们是怎么解决的
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2018-8-2
在线时间
7 小时
发表于 2019-3-1 17:23:36 | 显示全部楼层
请问你们解决了吗。我现在用ENC28J60发数据到后台,遇到十六进制0x00也停止了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 18:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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