这个模块买了好久了,一直放在箱子里面在吃灰,终于决定对它下手了。
之前买了一个NUC123的开发板,M0的内核,最高72M的速度,嗯没错,又搞了一个液晶显示屏,可以用SPI驱动,再加上这个24L01,哈哈,液晶这前就开始玩了,也没有什么大动静就是刷屏。没错,自己又焊接了6个小按键开关,想一下,也挺厉害的了,有显示,有输入,有数据处理。没错,后面有计划学画PCB没错,这个焊接实在是。。。。。。想一下,自己画个小板子,在动手蚀刻一下想一下也挺美的。哈哈
嗯,没错,费话就这么多了(2017年6月24日20:51:46),明天要去姐姐家里,没空玩了。今天不管怎么样,总算把接收和发送调通了,比起LORA SX1278,这个算是比较简单了,总共也没有几个寄存器,想想之前看LORA,妹的.113个寄存器,看说明书都快哭了。代码是买的时候淘宝给的,使用IO模拟ISP时序。有51的程序移植起来比较简单了。把这个记录写完来的及的话,去用一下硬件的SPI驱动一下。没错是这个样子。
1.定义相关的寄存器地址和相应在程序要用到的宏。网上基本上都差不多,大家都是互相Ctrl+c/v的。哈哈,不写了。
有几点倒是让自己学到了些,
1.1.寄存器相应的标志位,可以单独定义出来,之前没有这么玩过,感觉挺好的
#define MAX_TX 0x10
#define TX_OK 0x20
#define RX_OK 0x40 //接收位
1.2.nuvoton是外部中断和普通的IO中断用了不同的中断入口,之前一直都没有用过外部中断。还一直使用IO口中断,一直不进
2.相关SPI的时序处理。其实SPI的本质就是收发数据的交换。与UART的串口不一样的地方。使用IO口模拟的话,程序移植性特别好。
3.24L01的三种情况下的中断,都需要及时的清除标志位,这个很重要不然它的IRQ会一直保持低电平,类似于死机一样,仿真时复位也没用,中间调试的时候我就碰到了,第一次接收的时候 可以,然后IRQ一直就是低电平。复位也没有用,必须断电重启才可以。
3.24L01在进行模块切换的时候,有延时的要求,这个时间我没有查看手册,看网上说的要130us.
4.发射数据的第一个字节表示为发射数据 的长度,这个不可以错
5嗯,暂时就想到这么多了,本来想复制代码的,发现在KEIL里面写的代码复制进来格式特别乱,还是算了。嗯,没错,用用硬件SPI时序试试看。