南开做网站的公司江西网站建设费用

张小明 2026/1/13 7:13:54
南开做网站的公司,江西网站建设费用,二维码页面设计模板,服务器维护公告1、SPI主机DMA发送 SPI的发送操作在实现上与串口发送非常相似#xff0c;尤其在使用DMA进行数据传输时#xff0c;其配置流程和数据搬运机制是基本一致的#xff0c;因此在此不再重复介绍DMA的具体配置细节。 唯一需要特别注意的是#xff0c;在SPI发送过程中#xff0c…1、SPI主机DMA发送SPI的发送操作在实现上与串口发送非常相似尤其在使用DMA进行数据传输时其配置流程和数据搬运机制是基本一致的因此在此不再重复介绍DMA的具体配置细节。唯一需要特别注意的是在SPI发送过程中主设备通过片选信号CS来控制通信时序。需要正确的输出片选信号。发送部分代码如下1. //SPI1主机 只发送 2. void SPI1_SendData(uint8_t *pu8Data, uint16_t u16Len) 3. { 4. uint32_t Timeout 0xfffffff0; 5. while(SPI_GetStatus(CM_SPI1,SPI_FLAG_IDLE) 0) //等待总线空闲 6. { 7. Timeout--; 8. if (Timeout-- 0) 9. { 10. return; 11. } 12. }; 13. Wait_DMA_Ready(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, (uint32_t)(CM_SPI1-DR)); // 等待DMA准备就绪 14. GPIO_ResetPins(SPI1_SS0_PORT, SPI1_SS0_PIN); //拉低片选 15. if (u16Len 1) //如果只有一个数据直接发送 16. { 17. SPI_WriteData(CM_SPI1, *pu8Data); 18. while(SPI_GetStatus(CM_SPI1,SPI_FLAG_IDLE) 0) //等待发送完成 19. { 20. Timeout--; 21. if (Timeout-- 0) 22. { 23. return; 24. } 25. }; 26. 27. GPIO_SetPins(SPI1_SS0_PORT, SPI1_SS0_PIN); //拉高片选 28. return; 29. } 30. 31. //多个数据传输 32. DMA_SetTransCount(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, u16Len - 1); // 设置DMA传输长度 33. DMA_SetSrcAddr(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, (uint32_t)(pu8Data 1)); // 设置DMA源地址跳过第一个字节 34. DMA_SetDestAddr(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, (uint32_t)(CM_SPI1-DR)); // 设置DMA目的地址 35. SPI_WriteData(CM_SPI1, *pu8Data); // 发送第一个字节 36. while(SPI_GetStatus(CM_SPI1,SPI_FLAG_IDLE) 0) //等待总线空闲 37. { 38. Timeout--; 39. if (Timeout-- 0) 40. { 41. return; 42. } 43. }; 44. GPIO_SetPins(SPI1_SS0_PORT, SPI1_SS0_PIN); //拉高片选 45. }2、SPI主机DMA接收SPI主机的接收机制与串口接收存在一定差异。在SPI通信中主机的接收操作总是伴随着发送操作进行的也就是说数据的接收是通过发送过程中的时钟同步完成的。因此接收到的数据长度在通信开始前就是已知的这一点为接收流程的简化提供了便利。基于这一特点可以在SPI主机发送逻辑的基础上直接整合接收处理代码实现发送与接收的同步控制。具体来说在启动SPI传输之前预先配置好接收DMA的起始地址和接收数据长度随后启动SPI主机传输整个接收过程将由DMA自动完成由于接收长度已知且接收与发送同步进行因此在整个数据传输过程中无需手动干预DMA通道的使能状态CHEN即可保证接收数据的完整性和正确性。代码如下//SPI1发送接收数据 void SPI1_Send_Receive_Data(uint8_t *SendData, uint8_t *RevData,uint16_t u16Len) { uint32_t Timeout 0xfffffff0; while(SPI_GetStatus(CM_SPI1,SPI_FLAG_IDLE) 0) //等待总线空闲 { Timeout--; if (Timeout-- 0) { return; } }; Timeout 0; Wait_DMA_Ready(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, (uint32_t)(CM_SPI1-DR));//等待DMA就绪 GPIO_ResetPins(SPI1_SS0_PORT, SPI1_SS0_PIN); //拉低片选 if (u16Len 1) //如果只有一个数据直接发送 { SPI_WriteData(CM_SPI1, *SendData); while(SPI_GetStatus(CM_SPI1,SPI_FLAG_IDLE) 0) //等待发送完成 { Timeout--; if (Timeout-- 0) { return; } }; //拉高片选 GPIO_SetPins(SPI1_SS0_PORT, SPI1_SS0_PIN); return; } //设置发送DMA参数 DMA_SetTransCount(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, u16Len - 1); // 设置DMA传输长度 DMA_SetSrcAddr(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, (uint32_t)(SendData 1)); // 设置DMA源地址跳过第一个字节 DMA_SetDestAddr(SPI1_TX_DMA_UNIT, SPI1_TX_DMA_CH, (uint32_t)(CM_SPI1-DR)); // 设置DMA目的地址 //设置接收DMA参数 DMA_SetDestAddr(SPI1_RX_DMA_UNIT, SPI1_RX_DMA_CH, (uint32_t)RevData); // 设置DMA目的地址 DMA_SetTransCount(SPI1_RX_DMA_UNIT, SPI1_RX_DMA_CH, u16Len); // 设置DMA传输长度 SPI_WriteData(CM_SPI1, *SendData); // 发送第一个字节 while(SPI_GetStatus(CM_SPI1,SPI_FLAG_IDLE) 0) // { Timeout--; if (Timeout-- 0) { return; } }; GPIO_SetPins(SPI1_SS0_PORT, SPI1_SS0_PIN); }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

邯郸网站开发做网站选大公司好还是小公司

想要快速拥有一个能够智能对话的数字人吗?Awesome Digital Human Live2D项目让你轻松实现这个梦想。本指南将从实际应用场景出发,带你逐步搭建功能完整的虚拟角色交互系统。 【免费下载链接】awesome-digital-human-live2d Awesome Digital Human 项目…

张小明 2026/1/3 4:44:33 网站建设

那里可以做工作室做网站app界面设计欣赏

河北东方学院本科毕业论文(设计)任务书题 目宋体五号居中学 院人工智能学院专 业宋体五号居中班级与教务系统班级一致学生姓名宋体五号居中指导教师张三(讲师)日 期2024年10月20日毕业论文(设计&#xff0…

张小明 2026/1/2 18:22:47 网站建设

万户做的网站安全吗一元购物网站建设

宝子们!挖到 B 站 闰月优葡魔改的 Dism,Windows 党直接狂喜~ 魔改重点全在系统优化,新增超多实用功能,操作简单新手也会用! 软件下载地址 核心功能拉满:空间回收一键清 C 盘垃圾、过期文件和缓…

张小明 2026/1/2 18:21:23 网站建设

最专业的网站制作公司福田网站建设效果

raylib游戏开发实战:从零构建跨平台游戏的完整指南 【免费下载链接】raylib raysan5/raylib 是一个用于跨平台 C 语言游戏开发库。适合在进行 C 语言游戏开发时使用,创建 2D 和 3D 图形应用程序。特点是提供了丰富的图形和音频处理功能、易于使用的 API …

张小明 2026/1/8 10:31:13 网站建设

肃宁县做网站价格html网页怎么做

邮件存档与检索设计全解析 在当今数字化时代,邮件作为企业沟通和信息存储的重要工具,其存档与检索的重要性不言而喻。有效的邮件存档与检索策略不仅能帮助企业满足法规遵从性要求,还能在遇到问题时快速定位和获取关键信息。本文将深入探讨邮件存档与检索的各个方面,包括管…

张小明 2026/1/3 6:37:00 网站建设

网络推广建设期的网站网站开发方面知识

嵌入式Linux下pymodbus与RTU串口通信实战:从掉坑到稳如老狗最近在调试一个基于嵌入式Linux的工业边缘网关项目,目标是用Python通过RS-485总线读取多个电表和温控器的数据。理想很丰满——写几行代码、跑个脚本、数据就上来了;现实却很骨感&am…

张小明 2026/1/7 16:05:26 网站建设