找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于3-8位数据发送问题

[复制链接]
跳转到指定楼层
楼主
ID:1059305 发表于 2023-3-16 10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题:我想发送3-8位的数据,但目前并没有发送相应的数据。求助大家,看看问题,已尝试用示波器观察电平波动,但没有相应现象。
  1. //发送位数据
  2. void send_bit(u8 data,u8 cnt)   //data为发送数据,cnt为发送多少位
  3. {
  4.       u8 i;
  5.       for(i=0;i<cnt;i++)
  6.      {
  7.         if(data&0x80)
  8.            {
  9.                 DATA_H;  //Pin发送高电平
  10.            }
  11.        else
  12.           {
  13.                 DATA_L;//Pin发送低电平
  14.            }
  15.        data<<=1;        
  16.       }
  17. }
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-3-16 12:08 | 只看该作者
如果DATA_H和DATA_L定义正确且对应端口正确初始化了,那就是你不会用数字示波器抓单次波形,或者你用的是模拟示波器看不到波形。
回复

使用道具 举报

板凳
ID:1059305 发表于 2023-3-16 14:37 | 只看该作者
Hephaestus 发表于 2023-3-16 12:08
如果DATA_H和DATA_L定义正确且对应端口正确初始化了,那就是你不会用数字示波器抓单次波形,或者你用的是模 ...

谢谢,其他函数的其他引脚是可以观察到电平符合预期变化的,但是DATA数据脚,电平变化不对,所以不知道函数是否写对
回复

使用道具 举报

地板
ID:401564 发表于 2023-3-18 22:10 | 只看该作者
这个实际上就是把AT24C01或者DS1302之类的一个字节的通讯,改成可调的而已,自己研究一下就行了
可以先发送一个111,就是三个高电平,用示波器看一下
你这个代码得在中间加一个延时
你再把延时改成1秒的,你有足够的时间去抓波形
回复

使用道具 举报

5#
ID:1059305 发表于 2023-3-20 22:33 | 只看该作者
Y_G_G 发表于 2023-3-18 22:10
这个实际上就是把AT24C01或者DS1302之类的一个字节的通讯,改成可调的而已,自己研究一下就行了
可以先发送 ...

谢谢,现在已经调出来了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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