找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 151|回复: 7
打印 上一主题 下一主题
收起左侧

关于25AA020A器件写入数据时,程序需要死等

[复制链接]
跳转到指定楼层
楼主
  1. #include "E2_25AA020A.h"
  2. void E2_WriteByte(unsigned char addr,unsigned char dat)
  3. {
  4.         unsigned char sta;
  5.         SPI_CS = 0;
  6.         spiWriteByte(WREN);
  7.         SPI_CS = 1;
  8.         
  9.         SPI_CS = 0;
  10.         spiWriteByte(WRITE);
  11.         spiWriteByte(addr);
  12.         spiWriteByte(dat);
  13.         SPI_CS = 1;
  14.       <b>  while(1)
  15.         {
  16.                 SPI_CS = 0;
  17.                 spiWriteByte(RDSR);
  18.                 sta = spiReadByte();
  19.                 SPI_CS = 1;
  20.                 if((sta & 0x01) == 0)
  21.                 {
  22.                         break;
  23.                 }
  24.         }</b>
  25. }
复制代码



各位大佬们,我加粗部分代码是写入25AA020A这个器件时,需要等待这个状态,有啥办法不让他死等来查询这个状态位吗
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1143041 发表于 2025-4-26 20:46 | 只看该作者
还有在UART中,需要查询while(TI),while(RI),有什么办法可以避免这种阻塞代码吗,谢谢大佬们的解答
回复

使用道具 举报

板凳
ID:1109793 发表于 2025-4-27 07:45 | 只看该作者
不死鸟a 发表于 2025-4-26 20:46
还有在UART中,需要查询while(TI),while(RI),有什么办法可以避免这种阻塞代码吗,谢谢大佬们的解答

用中断方式嘛
回复

使用道具 举报

地板
ID:879348 发表于 2025-4-27 10:19 | 只看该作者
你说的问题,通常高级芯片都有DMA功能去避免这个问题
回复

使用道具 举报

5#
ID:446156 发表于 2025-4-27 10:48 | 只看该作者
不死鸟a 发表于 2025-4-26 20:46
还有在UART中,需要查询while(TI),while(RI),有什么办法可以避免这种阻塞代码吗,谢谢大佬们的解答

可以参考下我发的帖子。串口的解决办法是使用DMA发送但是要注意需要判断DMA是否为忙状态也就是说不用DMA发送串口每发一个字节就得判断一下状态然后发下一个字节,使用DMA后每发一帧(一帧数据多长是个人定义的)需要判断一下DMA状态然后发下一帧。如果数据量不大波特率够高直接阻塞式发送也没事。
回复

使用道具 举报

6#
ID:1143041 发表于 2025-4-27 14:23 | 只看该作者

问一下大佬有代码参考一下嘛?
回复

使用道具 举报

7#
ID:1143041 发表于 2025-4-27 14:23 | 只看该作者
wufa1986 发表于 2025-4-27 10:19
你说的问题,通常高级芯片都有DMA功能去避免这个问题

欧克,谢谢大佬
回复

使用道具 举报

8#
ID:1109793 发表于 2025-4-27 18:06 | 只看该作者
不死鸟a 发表于 2025-4-27 14:23
问一下大佬有代码参考一下嘛?

论坛搜一下MODBUS的代码,我以前看过,应该就是中断的
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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