中国app开发教程的国际化APP有吗

后使用快捷导航没有帐号?
扫一扫,访问微社区
只需一步,快速开始
查看: 48530|回复: 408
【拉普兰德K60底层库】OSKinetis_V2.2(驱动库、30+例程、函数手册)
回复本帖可获得 2 贡献奖励! 每人限 1 次(中奖概率 30%)
主题帖子精华
有什么需帮助的?
兑换币1728
在线时间1330 小时
本帖最后由 洋葱圈 于
16:17 编辑
请下载最新!拉普兰德K60固件库V3版:本页面不再更新
“拉普兰德K60底层库”为飞思卡尔Kinetis系列的开发者提供了丰富的底层驱动函数,该底层库的代码全部开源,并由数名工程师共同编写和维护。自从2012年2月份发布该底层库的第一个版本后,便受到众多开发者的支持,很多开发者将他们在使用中遇到的问题反馈给我们,使本底层库逐步得到完善。
“拉普兰德K60底层库”不仅为开发者提供了底层驱动函数,还为初学者提供了近30个示例工程。在V2版本以后,更提供了uC/OS及uC/GUI等系统的移植。
V2.2版本驱动包括:l&&MCG:一键超频代码;l&&GPIO:通用输入输出及外部中断;l&&ADC:软件、硬件触发采集;l&&FTM:PWM输出、输入捕获;l&&PIT:周期定时中断;l&&eDMA:内存数据直接存储;l&&LPTMR:低功耗定时、脉冲捕获l&&UART:串口输入输出;l&&I2C:双总线传输;l&&SDHC:SD卡存储,包含DiskIO及FatFs文件系统;l&&DAC:软件、硬件触发数模转换;l&&CAN:总线控制器局域网;l&&SPI:串行外设总线;l&&PDB:可编程延时模块,用于精准延时、触发ADC及DAC操作;l&&ENET:以太网控制器,包含MAC层通信驱动;l&&USB:CDC类设备驱动;l&&RTC:实时时钟驱动;l&&FLASH:片内FLASH擦除、写入等驱动。
V2.2版本示例工程包括:
LPLD_ADC:AD单端采集例程LPLD_ADC_ENC-03:村田ENC-03陀螺仪传感器采集例程LPLD_Breathing:呼吸灯例程,PIT、GPIO综合实验LPLD_CAN:CAN总线收发例程LPLD_DAC_TriangularWave:DAC模拟三角波发生器例程LPLD_ENET_MAC:以太网通信例程LPLD_GPIO_DMA:OV系列数字摄像头DMA图像采集例程LPLD_GPIO_Isr:IO口按键中断例程LPLD_Hello_World:入门测试例程LPLD_I2C_MMA7660:MMA7660加速度传感器采集例程LPLD_InputCapture:输入脉冲捕获例程LPLD_LedLight:LED灯例程LPLD_LPTMR_PulseAcc:脉冲累加例程LPLD_MAG3110:飞思卡尔MAG3110三轴地磁传感器例程LPLD_PDB_Isr:可编程精准延时中断例程LPLD_PDB_TrgADC:PDB触发ADC采集例程LPLD_PDB_TrgDAC:PDB触发DAC输出例程LPLD_PIT:周期中断定时器例程LPLD_PWM:PWM输出控制舵机例程LPLD_RTC_Isr:实时时钟例程LPLD_SDHC:SD卡数据读写例程LPLD_SDHC_FatFs:SD卡文件系统读写例程LPLD_SPI_NRF24L01:nRF24L01无线模块数据收发例程LPLD_Template:空白模板,用于快速新建工程LPLD_TSL1401:TSL1401线性CCD模块采集例程LPLD_UART_Isr:串口中断接收发送例程LPLD_UCOS:uC/OS移植例程LPLD_UCOS_OSSem:uC/OS信号量测试例程LPLD_USB_VirtualCom:USB虚拟串口例程LPLD_Flash:K60片内FLASH读、写、擦除例程LPLD_DMA_PulseAcc:DMA配合GPIO实现多路脉冲累加例程
相关下载:
拉普兰德K60底层库V2.2(含所有驱动及30+个例程)
日更新V2.2最新版
K60 Nano核心板资料(含用户手册、原理图、封装)
K60 Card V2核心板资料(含用户手册、原理图)
线性CCD单次采集程序、上位机V2、快速上手手册打包下载
利用Bootloader给K60下载程序(教程、程序、下载器)
Kinetis底层库讨论群:(入群验证:K60)
CCD光电平衡车讨论群:(入群验证:光电)
更新历史:
l& &创建文档“LPLD_K60底层开发包”
l& &底层驱动包添加PIT模块相关函数,并更新相应说明
l& &文档更名为“K60底层开源驱动-LPLD_OSKinetis”l& &底层驱动包添加eDMA模块相关函数,并更新相应说明l& &添加GPIO模块外部中断设置函数l& &简化ADC模块初始化函数l& &合并PIT模块中断底层函数
l& &底层驱动包添加LPTMR模块相关函数,并更新相应说明
l& &添加FTM模块的输入捕捉相关函数l& &底层驱动包添加UART模块相关函数,并更新相应说明
l& &底层驱动包添加I2C模块相关函数,并更新相应说明
l& &底层驱动包添加SDHC模块及磁盘IO模块相关函数,并更新相应说明l& &底层驱动包以磁盘IO模块底层函数为基础,添加开源的FatFs文件系统,并更新相应说明
l& &更新ADC、GPIO、I2C、LPTMR、PIT、UART等底层函数的参数名,使用旧版函数的程序需做小量兼容性修改l& &修复ADC单端采集BUG
l& &更新GPIO的LPLD_GPIO_SetIsr()函数,使用后自动使能相应中断l& &增加GPIO、PIT、LPTMR的清除中断函数l& &增加CAN、DAC、SPI、PDB、RTC、ENET、USB模块的底层函数库
l& &修改PDB中断函数BUGl& &增加FLASH模块底层库函数库
l& &重新编写SDHC底层驱动,解决多块读写BUGl& &修改SPI底层驱动初始化函数的注释错误l& &修改nRF24L01\MAG3110\MMA7660等例程的BUGl& &增加DMA实现脉冲累加功能的例程
注:自V2.2版后增加对示例程序的修改记录。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
主题帖子精华
金牌会员, 积分 2143, 距离下一级还需 857 积分
金牌会员, 积分 2143, 距离下一级还需 857 积分
在线时间289 小时
毕业学校shaoguang
回帖奖励 +1 贡献
好东西!收来!!
主题帖子精华
跨届大侠, 积分 6175, 距离下一级还需 5825 积分
跨届大侠, 积分 6175, 距离下一级还需 5825 积分
兑换币1311
在线时间703 小时
回帖奖励 +1 贡献
收藏了先!
主题帖子精华
跨届大侠, 积分 10986, 距离下一级还需 1014 积分
跨届大侠, 积分 10986, 距离下一级还需 1014 积分
兑换币2258
在线时间1436 小时
回帖奖励 +1 贡献
主题帖子精华
跨届大侠, 积分 6364, 距离下一级还需 5636 积分
跨届大侠, 积分 6364, 距离下一级还需 5636 积分
在线时间704 小时
去年就用的这个。不错
主题帖子精华
常驻嘉宾, 积分 5361, 距离下一级还需 639 积分
常驻嘉宾, 积分 5361, 距离下一级还需 639 积分
在线时间599 小时
主题帖子精华
高级会员, 积分 966, 距离下一级还需 34 积分
高级会员, 积分 966, 距离下一级还需 34 积分
在线时间83 小时
回帖奖励 +1 贡献
好东西~~~~~·看看~~~~~~~
主题帖子精华
常驻嘉宾, 积分 3089, 距离下一级还需 2911 积分
常驻嘉宾, 积分 3089, 距离下一级还需 2911 积分
在线时间297 小时
回帖奖励 +1 贡献
主题帖子精华
跨届大侠, 积分 10636, 距离下一级还需 1364 积分
跨届大侠, 积分 10636, 距离下一级还需 1364 积分
在线时间802 小时
回帖奖励 +1 贡献
主题帖子精华
杰出人士, 积分 12826, 距离下一级还需 7174 积分
杰出人士, 积分 12826, 距离下一级还需 7174 积分
兑换币2114
在线时间3055 小时
毕业学校嘉兴学院
热心会员奖章
经常帮助其他会员答疑
论坛元老奖章
会员等级达到元老
优秀会员奖章
注册后积极参与论坛讨论
在线王奖章
在线时间长,且活跃度高
活跃会员奖章
经常参与各类话题讨论,发贴较有主见
论坛骨干奖章
论坛骨干奖章
资源大师奖章
分享大量优秀资源
站长推荐 /3
4位技术大咖,全天干货培训,一系列解决方案的课堂演示,呈现技术实验室中各式各样的演示和产品,带来干货满满的经验分享。直播过程中还有多重好礼相送,赶紧报名吧!
纠结基础知识不扎实?小车制作遇到问题?看看大牛怎么说。资深工程师17年研发经验分享;大咖解读电磁兼容你不得不知的知识点;NXP社区imx版主带你聊聊嵌入式的那些事儿;测试设备中的暗雷怎么扫除……
智能车制作四轮类
智能车制作直立类
智能车制作追逐类
智能车制作电磁节能组
智能车制作双车对抗组
智能车制作四旋翼组
Powered byK60的SPI2与DMA数据传输_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
K60的SPI2与DMA数据传输
上传于|0|0|文档简介
&&基于K60的SPI2与DMA数据传输。山外库
你可能喜欢查看: 2419|回复: 66
[SPI]山外哥,你们的底层驱动SPI怎么不对啊,是我用错了吗?
spi_init(SPI0,SPIn_PCS0,MASTER,);& && && && &&&//初始化SPI,选择CS0,主机模式,设置波特率
spi_mosi(SPI0,SPIn_PCS0,((uint16 *)(LDC1000_CMD_PROXLSB)),NULL,1);//写数据,底层用的8位格式,我需求是16位的,就改了
spi_mosi(SPI0,SPIn_PCS0,NULL,&DataRcv[0],1);//读数据
但是现在的问题是clk保持低电平,IN,OUT,CS,这三个全是高电平,表示完全不懂。。。
SPI 本来就是8位传输,如果你要传输16位数据,就根据大小端模式,分开两次传输就好了。
spi_mosi(SPI0,SPIn_PCS0,NULL,&DataRcv[0],1);//读数据
这里是读取数据,OUT的数据由 0地址的数据决定。
IN的数据由从机来决定。
clk 这个应该是方波才对啊
你可以测一下我们的NRF的例程的时序
山外メ雲ジ 发表于
spi_mosi(SPI0,SPIn_PCS0,NULL,&DataRcv[0],1);//读数据
这里是读取数据,OUT的数据由 0地址的数据决定。 ...
谢谢山大哥及时回复,不过我看了哈还是没懂你的意思。还有,我用NRF那个程序测试时是间断的三角波,主要 是间断的。。。
使用你们最新的底层就只要
初始化:uint32 spi_init(SPIn_e spin, SPIn_PCSn_e pcs, SPI_CFG master,uint32 baud)
读写数据:void spi_mosi(SPIn_e spin, SPIn_PCSn_e pcs, uint8 *modata, uint8 *midata, uint8 len)
& && && && && && && && && && &modata是单片机待发送数据地址 midata是SPI接收到的数据的地址
这两个就可以了啥,其它不用拉低CS片选,开CLK时钟这些吧?
LSQ_GSQ 发表于
谢谢山大哥及时回复,不过我看了哈还是没懂你的意思。还有,我用NRF那个程序测试时是间断的三角波,主要&&...
CS 和 CLK 这些都是 SPI模块自动控制的,不需要我们再去控制
山外メ雲ジ 发表于
CS 和 CLK 这些都是 SPI模块自动控制的,不需要我们再去控制
那为什么初始化后我不管是否读写数据CS始终为高,CLK始终为低啊?是我初始化错了吗?
spi_init(SPI1,SPIn_PCS1,MASTER,);& && && && &&&//初始化SPI,选择CS0,主机模式
LSQ_GSQ 发表于
那为什么初始化后我不管是否读写数据CS始终为高,CLK始终为低啊?是我初始化错了吗?
spi_init(SPI1,SPI ...
你初始化的是 SPIn_PCS1 时钟啊,不是 CS0啊!!
山外メ雲ジ 发表于
CS 和 CLK 这些都是 SPI模块自动控制的,不需要我们再去控制
我使用的SPI1,
#define SPI1_SCK& & PTE2& && & // PTE2、PTB11、& && && && &全部都是 ALT2
#define SPI1_SOUT& &PTE1& && & // PTE1、PTB16、& && && && &全部都是 ALT2
#define SPI1_SIN& & PTE3& && & // PTE3、PTB17、& && && && &全部都是 ALT2
#define SPI1_PCS1& &PTE0& && &&&// PTE0、PTB9、& && && && & 全部都是 ALT2
困扰我好几天了,心烦啊,求助
LSQ_GSQ 发表于
我使用的SPI1,
#define SPI1_SCK& & PTE2& && & // PTE2、PTB11、& && && && &全部都是 ALT2
#define S ...
初始化后,需要读写数据的时候,CS和CLK才有输出的哦
你有没有进行数据读写?
山外メ雲ジ 发表于
初始化后,需要读写数据的时候,CS和CLK才有输出的哦
你有没有进行数据读写?
好吧,那能详细讲讲读写那个函数的使用注意事项吗?那个我不太明白那两个地址的关系。
void spi_mosi(SPIn_e spin, SPIn_PCSn_e pcs, uint8 *modata, uint8 *midata, uint8 len)
山外メ雲ジ 发表于
初始化后,需要读写数据的时候,CS和CLK才有输出的哦
你有没有进行数据读写?
可能是我写数据有问题,导致从机没配置好,所以没工作吧。
LSQ_GSQ 发表于
好吧,那能详细讲讲读写那个函数的使用注意事项吗?那个我不太明白那两个地址的关系。
void spi_mosi(SP ...
一个是发送缓冲区,一个是接收缓冲区
前面那个就是你需要发送的内容的地址,后面那个是你需要把接收到的数据存储在哪个地址上。
因为SPI是发送的同时,也会进行接收。
不然对发送内容没要求,直接NULL就好。如果不存储接收数据,那么直接NULL接收地址就好
山外メ雲ジ 发表于
一个是发送缓冲区,一个是接收缓冲区
前面那个就是你需要发送的内容的地址,后面那个是你需要把接收到 ...
spi_mosi_cmd(SPI1, SPIn_PCS0, ((uint8 *)(LDC1000_CMD_PWRCONFIG)), NULL, ((uint8 *)(0x01)), NULL, 1, 1);
还是不行,我发送LDC1000_CMD_PWRCONFIG寄存器地址,寄存器值0x01;
spi_mosi_cmd(SPI1, SPIn_PCS0, ((uint8 *)(LDC1000_CMD_PROXLSB)), NULL, NULL, &DataRcv[0], 1, 1);
不断执行读取函数:LDC1000_CMD_PROXLSB寄存器地址,DataRcv[0], 存放读取的值。
我看波形是MOSI没有波形,MOSO,SCLK,CS都是间断的波形。
LSQ_GSQ 发表于
spi_mosi_cmd(SPI1, SPIn_PCS0, ((uint8 *)(LDC1000_CMD_PWRCONFIG)), NULL, ((uint8 *)(0x01)), NULL, 1 ...
LDC1000_CMD_PROXLSB&&这个是什么东西?
MOSI 没波形,那是因为你的输出缓冲区的数据是0x00 或者 0xFF
最好你上传一下波形
山外メ雲ジ 发表于
LDC1000_CMD_PROXLSB&&这个是什么东西?
MOSI 没波形,那是因为你的输出缓冲区的数据是0x00 或者 0xFF ...
C:\Documents and Settings\Administrator\桌面
C:\Documents and Settings\Administrator\桌面
C:\Documents and Settings\Administrator\桌面
LSQ_GSQ 发表于
需要进入高级模式上传图片
山外メ雲ジ 发表于
需要进入高级模式上传图片
本帖子中包含更多资源
才可以下载或查看,没有帐号?
LSQ_GSQ 发表于
感觉SPI没什么问题啊,你检查一下SPI通信时序看看。
另外,一个 spi_mosi 函数,开始的时候会自动把CS拉低,退出的时候会自动拉高的。
你看这个符不符合你的模块的通信协议
LSQ_GSQ 发表于
感觉SPI没什么问题啊,你检查一下SPI通信时序看看。
另外,一个 spi_mosi 函数,开始的时候会自动把CS拉低,退出的时候会自动拉高的。
你看这个符不符合你的模块的通信协议
山外メ雲ジ 发表于
感觉SPI没什么问题啊,你检查一下SPI通信时序看看。
另外,一个 spi_mosi 函数,开始的时候会自动把CS ...
协议应该没问题啊。
spi_mosi_cmd(SPI1, SPIn_PCS0, &LDC_CMD_INIT, NULL, &LDC_data, NULL, 1, 1);只是通过这个写从机寄存器的值。LDC_CMD_INIT是寄存器地址,LDC_data是写入对应寄存器的值。
LSQ_GSQ 发表于
协议应该没问题啊。
spi_mosi_cmd(SPI1, SPIn_PCS0, &LDC_CMD_INIT, NULL, &LDC_data, NULL, 1, 1);只是 ...
寄存器的地址,不是这样子写的啊。你没理解这个函数的用法和SPI通信协议
uint16 addr =&&LDC1000_CMD_PROXLSB;
spi_mosi(SPI0,SPIn_PCS0,(uint8 *)&addr,NULL,1);
山外メ雲ジ 发表于
寄存器的地址,不是这样子写的啊。你没理解这个函数的用法和SPI通信协议
uint16 addr =&&LDC1000_CMD_ ...
这还不是关键一样,改了还是不对,如果SPI没错的话我写了寄存器然后读出来全是OXff,把SOUT和SIN反过来接读出来就是0X00;但是我写入的肯定不是这两个。。。
对了,从机是TI的LDC1000,数字电感检测芯片
山外メ雲ジ 发表于
寄存器的地址,不是这样子写的啊。你没理解这个函数的用法和SPI通信协议
uint16 addr =&&LDC1000_CMD_ ...
山外哥,PTE3,也就是SPI1_SIN这个引脚总是为低电平,另外几个都正常,这是为什么啊?我明明有不断的发送和接收啊。。。
spi_mosi(SPI1,SPIn_PCS0,((uint8 *)(&LDC_CMD_Read[0])),NULL,1);写数据
&&spi_mosi(SPI1,SPIn_PCS0,NULL,&DataRcv[0],1);读数据
LSQ_GSQ 发表于
山外哥,PTE3,也就是SPI1_SIN这个引脚总是为低电平,另外几个都正常,这是为什么啊?我明明有不断的发送和接 ...
发送命令和数据,必须用一个函数完成啊!不然CS的电平就不对的
spi_mosi_cmd 用这个函数,包含发送命令和数据的。
你研究一下我们的 nrf 例程吧,里面也是用到 spi的。你要对比时序图,不能仅仅单从结果来判断原因的。
山外メ雲ジ 发表于
发送命令和数据,必须用一个函数完成啊!不然CS的电平就不对的
spi_mosi_cmd 用这个函数,包含发送命令 ...
我改了SPI2空载,SPI2_SIN& & PTB23 还是一直为低电平,这是为什么啊?SIN应该是从机IN,CPU当主机就是OUT啊,这个怎么就没数据呢?
LSQ_GSQ 发表于
我改了SPI2空载,SPI2_SIN& & PTB23 还是一直为低电平,这是为什么啊?SIN应该是从机IN,CPU当主机就是OU ...
SPI2_SIN& &这个是对单片机而已是输入,对从机来说是输出啊,数据是由从机来决定的。
LSQ_GSQ 发表于
我改了SPI2空载,SPI2_SIN& & PTB23 还是一直为低电平,这是为什么啊?SIN应该是从机IN,CPU当主机就是OU ...
你现在没一个完整的时序给我,我也不好判断是什么原因。
你看看有没有逻辑分析仪这类的
山外メ雲ジ 发表于
SPI2_SIN& &这个是对单片机而已是输入,对从机来说是输出啊,数据是由从机来决定的。
那应该我知道了,从机没有输出,所以SIN总为单一电平,可能关键还是写数据初始化那里的问题,我再仔细看看。
山外メ雲ジ 发表于
SPI2_SIN& &这个是对单片机而已是输入,对从机来说是输出啊,数据是由从机来决定的。
请问一下 K60 SPI 的CLK频率是怎么算的,就是初始化的那个波特率
<font color="#5150121 发表于
请问一下 K60 SPI 的CLK频率是怎么算的,就是初始化的那个波特率
这个需要看手册,才知道的。
手册里有公式的
山外メ雲ジ 发表于
感觉SPI没什么问题啊,你检查一下SPI通信时序看看。
另外,一个 spi_mosi 函数,开始的时候会自动把CS ...
片选信号,拉低拉高是在哪里了,
Sir_J 发表于
片选信号,拉低拉高是在哪里了,
是由寄存器控制的,一个函数,传输的时候拉低,传输完成后拉高。
山外メ雲ジ 发表于
是由寄存器控制的,一个函数,传输的时候拉低,传输完成后拉高。
uint8 nrf_readreg(uint8 reg, uint8 *dat)
& & uint8 buff[2];
& & buff[0] =& && && & //先发送寄存器
& & spi_mosi(NRF_SPI, NRF_CS, buff, buff, 2); //发送buff数据,并保存到buff里
& & *dat = buff[1];& && && && && && && && & //提取第二个数据
& & /*返回状态寄存器的值*/
& & return buff[0];
以上是例程代码。是不是这样理解的。
spi_mosi(NRF_SPI, NRF_CS, buff, buff, 2); //发送buff数据,并保存到buff里
这里的2个字节,是指最后buff[0]和buff[1]里面的值么,
*dat = buff[1];& && && && && && && && & //提取第二个数据
还是这里才是读会来的一个字节的数据。
山外メ雲ジ 发表于
是由寄存器控制的,一个函数,传输的时候拉低,传输完成后拉高。
spi_mosi(NRF_SPI, NRF_CS, buff, buff, 2); //发送buff数据,并保存到buff里
还有就是 在这个过程中是进入时片选信号NRF_CS被拉低,读完后拉高的?
山外メ雲ジ 发表于
是由寄存器控制的,一个函数,传输的时候拉低,传输完成后拉高。
大哥,用一个SPI接口挂载多个SPI从机,初始化应该怎么初始化啊?比如我用SPI1,它有SPI1_PCS0 ,SPI1_PCS1 ,SPI1_PCS2 ,SPI1_PCS3 ,用这四个片选端口挂接四个从机的CS端,但是初始化函数中只能初始化一个CS啊。于是我想这样改
else if(spin == SPI1)
#if defined(MK60DZ10)
& && &&&SIM_SCGC6 |= SIM_SCGC6_SPI1_MASK;
#elif defined(MK60F15)
& && &&&SIM_SCGC6 |= SIM_SCGC6_DSPI1_MASK;
& && &&&port_init(SPI1_SCK , ALT2&&);
& && &&&port_init(SPI1_SOUT, ALT2&&);
& && &&&port_init(SPI1_SIN , ALT2&&);
& && &&&//if(pcs & SPIn_PCS0)
& && && && &port_init(SPI1_PCS0, ALT2&&);
& && &&&//if(pcs & SPIn_PCS1)
& && && && &port_init(SPI1_PCS1, ALT2&&);
& && &&&//if(pcs & SPIn_PCS2)
& && && && &port_init(SPI1_PCS2, ALT2&&);
& && &&&//if(pcs & SPIn_PCS3)
& && && && &port_init(SPI1_PCS3, ALT2&&);
不过好像不行。
山外メ雲ジ 发表于
是由寄存器控制的,一个函数,传输的时候拉低,传输完成后拉高。
大哥,用一个SPI接口挂载多个SPI从机,初始化应该怎么初始化啊?比如我用SPI1,它有SPI1_PCS0 ,SPI1_PCS1 ,SPI1_PCS2 ,SPI1_PCS3 ,用这四个片选端口挂接四个从机的CS端,但是初始化函数中只能初始化一个CS啊。于是我想这样改
else if(spin == SPI1)
#if defined(MK60DZ10)
& && &&&SIM_SCGC6 |= SIM_SCGC6_SPI1_MASK;
#elif defined(MK60F15)
& && &&&SIM_SCGC6 |= SIM_SCGC6_DSPI1_MASK;
& && &&&port_init(SPI1_SCK , ALT2&&);
& && &&&port_init(SPI1_SOUT, ALT2&&);
& && &&&port_init(SPI1_SIN , ALT2&&);
& && &&&//if(pcs & SPIn_PCS0)
& && && && &port_init(SPI1_PCS0, ALT2&&);
& && &&&//if(pcs & SPIn_PCS1)
& && && && &port_init(SPI1_PCS1, ALT2&&);
& && &&&//if(pcs & SPIn_PCS2)
& && && && &port_init(SPI1_PCS2, ALT2&&);
& && &&&//if(pcs & SPIn_PCS3)
& && && && &port_init(SPI1_PCS3, ALT2&&);
不过好像不行。
山外メ雲ジ 发表于
是由寄存器控制的,一个函数,传输的时候拉低,传输完成后拉高。
//根据主从机模式设置工作模式。MCU提供最大主机频率是1/2主频,最大从机频率是1/4主频
& & if(master == MASTER)
& && &&&SPI_MCR_REG(SPIN[spin]) =&&(0
& && && && && && && && && && && && &|&&SPI_MCR_MSTR_MASK& && &&&//Master,主机模式
& && && && && && && && && && && && &|&&SPI_MCR_PCSIS(pcs)
& && && && && && && && && && && && &|&&SPI_MCR_PCSIS_MASK
& && && && && && && && && && && &&&);
这里这个CS片选不知道怎么改成四个
LSQ_GSQ 发表于
//根据主从机模式设置工作模式。MCU提供最大主机频率是1/2主频,最大从机频率是1/4主频
& & if(master&&...
你用k60 驱动ldc1000好了么?
Sir_J 发表于
你用k60 驱动ldc1000好了么?
好了啊,这个还好,很简单
LSQ_GSQ 发表于
好了啊,这个还好,很简单
我弄不好诶,能加个q不
Sir_J 发表于
我弄不好诶,能加个q不
山外SPI还是很方便的,现在4片从机挂载也搞定了。就是注意下LDC1000初始化的读写标志就应该没问题了。
LSQ_GSQ 发表于
山外SPI还是很方便的,现在4片从机挂载也搞定了。就是注意下LDC1000初始化的读写标志就应该没问题了。
我上面两个问题,你知道么
uint8 ldc_readreg(uint8 reg)
& & uint8 buff[2];
& & buff[0] = (reg|0x80);& && && & //先发送寄存器
& & LDC_CSN_LOW();& && && &//拉低csn片选信号
& & spi_mosi(LDC1000_SPI, LDC1000_CS, buff, buff, 2); //发送buff数据,并保存到buff里
& & LDC_CSN_HIGH();& && &&&//拉低csn片选信号
& & //*dat = buff[1];& && && && && && && && & //提取第二个数据
& & /*返回状态寄存器的值*/
& & return buff[1];//return buff[0];&&
上面是读寄存器,
uint8 ldc_writereg(uint8 reg, uint8 dat)
& & uint8 buff[2];
& & buff[0] =& && && & //先发送寄存器
& & buff[1] =& && && & //再发送数据
& & LDC_CSN_LOW();//拉低csn片选信号
& & spi_mosi(LDC1000_SPI , LDC1000_CS, buff, NULL, 2); //发送buff里数据,并采集到 buff里
& & LDC_CSN_LOW();//拉高csn片选信号
& & /*返回状态寄存器的值*/
& & return buff[0];
这是写寄存器,你帮我看看,怎么写会比较好一点勒
Sir_J 发表于
uint8 ldc_readreg(uint8 reg)
山外的SPI读写程序进入就自动拉低CS,不用自己拉
Sir_J 发表于
uint8 ldc_readreg(uint8 reg)
用mosi_cmd那个更方便一点,读写命令和数据都可以。
LSQ_GSQ 发表于
用mosi_cmd那个更方便一点,读写命令和数据都可以。
你终于看懂了
山外メ雲ジ 发表于
你终于看懂了
哎,辛苦大哥了。现在都解决了,谢谢了
山外飞思卡尔智能车论坛从零入手Kinetis系统开发12-SPI模块_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
从零入手Kinetis系统开发12-SPI模块
上传于|0|0|文档简介
&&from jicheng0622
原文见电子技术应用网站
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢MPU9250 MPU6050 DMP SPI IIC K60程序直接读取四元素算出欧拉角-嵌入式处理器下载-EEWORLD下载中心
> MPU9250 MPU6050 DMP SPI IIC K60程序直接读取四元素算出欧拉角MPU9250 MPU6050 DMP SPI IIC K60程序直接读取四元素算出欧拉角
已有 433742个资源 相关资源 下载专区
上传者其他资源
嵌入式处理器热门资源本周本月全部
文档信息资源大小:2.13MB上 传 者: () 上传日期:资源类型:源码资源积分:1分评 论:下载次数:400参与讨论: 标&&&&签:
分&&&&享:
下载资源需要,并消耗一定的积分 文档简介本程序采用DMP库的方法直接得出mpu9250与mpu6050的四元素与欧拉角,可在200HZ的频率内采集,速度快,准确,简单。&
&程序中包含SPI与IIC两种方式,
IIC:&&如果需要切换成IIC,在主函数中&注释mpu_SPI_INIT();,而I2CInit(0x68);则不需要注释
& &然后在mpu_DMP.h文件中将#define&use_spi注释掉
SPI:&&如果需要切换成SPI,在主函数中&注释I2CInit(0x68);,而mpu_SPI_INIT();则不需要注释
然后在mpu_DMP.h文件中不要将#define&use_spi注释掉
连接&:i2c&接口&B0&---SCL&&&&B1---SDA
&&&&&spi接口&&A15---SCL&&&&A16---SDA&&&&A17---ADO&&&&A14---NCS
&&&&&uart接口&B17---RXD&&&&B16---TXD
上位机采用“虚拟串口”软件,波特率设为115200
开发平台:K60
相关帖子 FAQ&&&&Q.为什么我点的下载下不了,但积分却被扣了A.由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。Q.我已经登录过账号,为什么还一直提示要求登录A.出现这种情况是浏览器缓存问题,建议清理浏览器缓存后重启浏览器重新登录下载资源意味着您已经同意遵守以下协议1. 资源的所有权益归上传用户所有2. 未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途3. EEWORLD下载频道仅提供交流平台,并不能对任何下载资源负责4. 下载资源中如有侵权或不适当内容,请5. 本站不保证本站提供的资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。 大学堂最新课程
若举报审核通过,可奖励2下载分举报人:被举报人:lb8820265举报的资源分:1* 类型:请选择类型资源无法下载资源分类不正确资源无法使用标题与实际内容不符含有危害国家安全内容含有反动色情等内容含广告内容版权问题,侵犯个人或公司的版权其他
* 详细原因: 回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱service(.cn 或通过站内短信息或QQ:联系管理员okhxyyo,我们会尽快处理。

我要回帖

更多关于 app开发教程 的文章

 

随机推荐