1944|13

2640

帖子

6

TA的资源

五彩晶圆(初级)

楼主
 

软件SPI驱动,兼容类比芯片的spi驱动 [复制链接]

 
/*
  analogysemi
  xutong 2024/1/23
*/
#ifndef __BSP_LPSPI_H
#define __BSP_LPSPI_H

#include "config.h"
#define SPI_SCLK(x)		P25=(x)
#define SPI_MOSI(x)		P23=(x)
#define SPI_MISO			P24
#define SPI_CS1(x)		P22=(x)                                                                                                                                                                                             
#define SPI_CS2(x)		P21=(x) 

void LPSPI_Init(void);
void Lpspi_Write(uint8_t datasize,uint8_t *datas);
void Lpspi_Read(uint8_t datasize,uint8_t *datas,uint8_t *Rxdata);

#endif /* __BSP_LPSPI_H */
#include "bsp_lpspi.h"
#include	"STC8xxxx.H"

void LPSPI_Init(void)
{
	//设置除了MISO为输入外,其他为输出模式
    P2M0 = 0xEF;  //设置P2.0~P2.7为推挽输出模式
    P2M1 = 0x10;
		
}

void SPI_Transmit_Data_mode1(uint8_t *TXData ,uint8_t Size)   //SCLK low  second edge
{
	uint8_t i,a=0,datas=0;
	for(a=0;a<Size;a++)
	{
		datas = TXData[a];
		for(i = 0;i < 8;i++)
		{
			SPI_SCLK(1);
			if(datas&(0x80))//data bit = 1
			{
					SPI_MOSI(1);//MOSI SET 1
			}
			else
			{
				SPI_MOSI(0);//MOSI SET 1
			}
			datas <<=1;
			SPI_SCLK(0);
		}
	}
}
void SPI_Receive_Data_mode1( uint8_t *TXData,uint8_t *Rxdata ,uint8_t Size)   //SCLK low  second edge
{
	uint8_t i,a,datas;
	
	for(a=0;a<Size;a++)
	{
		datas = TXData[a];
		Rxdata[a]=0;
		for(i = 0;i < 8;i++)
		{
			SPI_SCLK(1);
			if(datas&(0x80))//data bit = 1
			{
					SPI_MOSI(1);//MOSI SET 1	
			}
			else
			{
					SPI_MOSI(0);//MOSI SET 0	
			}
			datas <<=1;
 			SPI_SCLK(0);
			
			if(SPI_MISO==1)
			{
				Rxdata[a]|=(0x80 >>i);
			}
		}
	}
}

void Lpspi_Write(uint8_t datasize,uint8_t *datas)
{
  SPI_Transmit_Data_mode1(datas,datasize);
}
void Lpspi_Read(uint8_t datasize,uint8_t *datas,uint8_t *Rxdata)
{
  SPI_Receive_Data_mode1(datas,Rxdata,datasize);
}


 

此帖出自51单片机论坛

最新回复

非常感谢分享   详情 回复 发表于 2024-2-24 18:16
点赞 关注(1)
个人签名

希望做一些大家觉得好用的东西!

 

回复
举报

134

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

软件实现这个,效率比较低吧

此帖出自51单片机论坛

点评

统一好移植  详情 回复 发表于 2024-1-24 10:18
 
 
 

回复

2640

帖子

6

TA的资源

五彩晶圆(初级)

板凳
 
lemonboard 发表于 2024-1-24 10:09 软件实现这个,效率比较低吧

统一好移植

此帖出自51单片机论坛
 
个人签名

希望做一些大家觉得好用的东西!

 
 

回复

6450

帖子

9

TA的资源

版主

4
 

硬件也是很稳定的,不过都可以用这种方式来判断器件的以及线路的完好性 

此帖出自51单片机论坛
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

2933

帖子

4

TA的资源

五彩晶圆(中级)

5
 

这都什么年代了还使用模拟SPI,过去是因为没有办法才使用模拟方案,现在的MCU基本上找不到不带SPI接口的。就是8051都带SPI

此帖出自51单片机论坛

点评

统一好移植,省的不同芯片每个都得整 当然也封了RT105X的 封了STM32的 那个不同芯片都一样省事  详情 回复 发表于 2024-1-24 15:13
 
 
 

回复

2640

帖子

6

TA的资源

五彩晶圆(初级)

6
 
bigbat 发表于 2024-1-24 10:34 这都什么年代了还使用模拟SPI,过去是因为没有办法才使用模拟方案,现在的MCU基本上找不到不带SPI接口的。 ...

统一好移植,省的不同芯片每个都得整 当然也封了RT105X的 封了STM32的 那个不同芯片都一样省事

此帖出自51单片机论坛
 
个人签名

希望做一些大家觉得好用的东西!

 
 

回复

2640

帖子

6

TA的资源

五彩晶圆(初级)

7
 
秦天qintian0303 发表于 2024-1-24 10:20 硬件也是很稳定的,不过都可以用这种方式来判断器件的以及线路的完好性 

此帖出自51单片机论坛
 
个人签名

希望做一些大家觉得好用的东西!

 
 

回复

365

帖子

0

TA的资源

版主

8
 

通信速率能跑到多少,试过吗?

此帖出自51单片机论坛

点评

这个取决于你的MCU  详情 回复 发表于 2024-1-24 18:18
 
 
 

回复

2640

帖子

6

TA的资源

五彩晶圆(初级)

9
 
LitchiCheng 发表于 2024-1-24 16:46 通信速率能跑到多少,试过吗?

这个取决于你的MCU


此帖出自51单片机论坛

点评

你用的这个测试场景大概多少呢  详情 回复 发表于 2024-1-25 09:04
 
 
 

回复

365

帖子

0

TA的资源

版主

10
 
xutong 发表于 2024-1-24 18:18 这个取决于你的MCU

你用的这个测试场景大概多少呢

此帖出自51单片机论坛

点评

没注意过,这么说吧,我根本不关心这个东西本身我只在意他能不能帮我们客户解决问题  详情 回复 发表于 2024-1-25 09:16
 
 
 

回复

2640

帖子

6

TA的资源

五彩晶圆(初级)

11
 
LitchiCheng 发表于 2024-1-25 09:04 你用的这个测试场景大概多少呢

没注意过,这么说吧,我根本不关心这个东西本身我只在意他能不能帮我们客户解决问题


此帖出自51单片机论坛
 
 
 

回复

320

帖子

0

TA的资源

纯净的硅(初级)

12
 

软件兼容性好啊,不同的芯片,稍微调整一下就好了,没必要什么芯片的资料都去学习

此帖出自51单片机论坛
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(初级)

13
 

软件SPI驱动,兼容类比芯片的spi驱动  感谢分享!

此帖出自51单片机论坛
 
 
 

回复

41

帖子

0

TA的资源

一粒金砂(中级)

14
 

非常感谢分享

此帖出自51单片机论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
全球4G进展一览 与 中国4G计划

全球4G进展一览 同3G等已有的数字移动通信系统相比,4G系统应具有更高的数据率、更好的业务质量(QoS)、更高的频谱利用率、更高的 ...

uCOS51 移植心得

今天我也传点东西吧,是巨龙公司系统集成开发部杨屹写的。

c2000v6.1

ccs中利用controlsuite无法导入c2000 launchpad的工程。提示 please install the c2000v6.1 compiler before importing this pro ...

【麦昆试用】麦昆的几种超声波传感器程序精度对比

目的 对比几种超声波传感器的测试精度,为大家使用提供参考。 方法 将不同程序写入microbit,用麦昆的超声波传感器测试距离 ...

Verilog 中的 ^ 的用法

464103 464103

AD走线的时候是网格线,有没有实心的线?

474029

PyPortal天气和时钟显示器

494962 使用CircuitPython的PyPortal Pynt时钟/天气显示屏,带有RTC,支持NTP自动校时。 https://github.com/imek ...

在学习RCD电路工作原理中,请问这个积蓄在寄生电感中的能量,这个寄生电感

是开关管的寄生电感吗? 626540 然后我看到的PFC电路中有一个类似于RCD功能的电路,这个黑色圈圈中的是RCD电路吗?为什么 ...

用信号发生器仪器调制DC直流源高压信号是否可行?

用信号发生器仪器调制DC直流源高压信号是否可行? 压电陶瓷换能器驱动,需要24V&1.7M的正弦波信号,信号发生器输出不了那么 ...

【Follow me第二季第1期】创意任务一:有创意的可穿戴装饰

本帖最后由 nemon 于 2024-8-31 19:10 编辑 创意任务一的要求是,做一个可穿戴装饰。 我的想法是做一个报警器:平时显示彩 ...

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表