当前位置: 首页 > news >正文

秦皇岛网站建设报价移动版网站开发

秦皇岛网站建设报价,移动版网站开发,济南建设局官网,汕头食品骏域网站建设前言 引用参考: Clion开发STM32之HAL库GPIO宏定义封装(最新版) 头文件 /******************************************************************************** Copyright (c) [scl]。保留所有权利。* 本文仅供个人学习和研究使用#xff0c;禁止用于商业用途。******…前言 引用参考: Clion开发STM32之HAL库GPIO宏定义封装(最新版) 头文件 /******************************************************************************** Copyright (c) [scl]。保留所有权利。* 本文仅供个人学习和研究使用禁止用于商业用途。******************************************************************************/ #ifndef STM32_F1XX_TEMPLATE_BSP_SPI_H #define STM32_F1XX_TEMPLATE_BSP_SPI_H#include bsp_include.h#define SPI_DEFAULT_CNF {\.Mode SPI_MODE_MASTER, /*主机模式*/\.Direction SPI_DIRECTION_2LINES, /*全双工*/\.DataSize SPI_DATASIZE_8BIT,/*数据大小:(字节)*/\.CLKPolarity SPI_POLARITY_LOW,/*时钟极性, 空闲状态为低*/\.CLKPhase SPI_PHASE_2EDGE, /*时钟相位, 在第二边沿采集数据*/\.NSS SPI_NSS_SOFT,/*软件使能*/\.BaudRatePrescaler SPI_BAUDRATEPRESCALER_2,/*波特率分频 2分频*/\.FirstBit SPI_FIRSTBIT_MSB,/*数据位传输方式从高到低*/\.TIMode SPI_TIMODE_DISABLE, /*TI 模式禁止*/\.CRCCalculation SPI_CRCCALCULATION_DISABLE,/*CRC校验禁用*/\.CRCPolynomial 7,/*CRC检验禁用此值无意义*/\}/*** CPOL: 时钟极性,控制在没有数据传输时note 时钟线的电平状态* 0: note 空闲状态时时钟线的电平为低电平* 1: note 空闲状态时. 时钟线的电平为 (高电平)* CPHA: 时钟相位数据采样的位置* 1note 在时钟的第2个边沿进行数据采集(CPOL为1: 上升沿采数据,CPOL为0:下降沿采数据)* 0: note 在时钟的第1个边沿进行数据采集(CPOL为1: 下降沿采数据CPOL为0: 上升沿采数据)* */ typedef enum {/**模式0 CPOL:0,CPHA:0 ; 时钟空闲状态为(低电平),在第一个时钟边沿采数据(时钟上升沿采数据) */spi_mode_0,/**模式1 CPOL:0,CPHA:1 ; 时钟空闲状态为(低电平),在第二个时钟边沿采数据(时钟下降沿采数据)*/spi_mode_1,/**模式2 CPOL:1,CPHA:0 ; 时钟空闲状态为(高电平),在第一个时钟边沿采数据(时钟下降沿采数据)*/spi_mode_2,/**模式3 CPOL:1,CPHA:1 ; 时钟空闲状态为(高电平),在第二个时钟边沿采数据(时钟上升沿采数据)*/spi_mode_3, } spi_mode_type;/********************************SPI1 配置**********************************************/ /**SPI1 GPIO ConfigurationPA5 ------ SPI1_SCKPA6 ------ SPI1_MISOPA7 ------ SPI1_MOSI*/ #define SPI1_SCK PA5 #define SPI1_MISO PA6 #define SPI1_MOSI PA7void spi1_gpio_msp_init();void spi1_gpio_msp_de_init();/********************************SPI2 配置**********************************************/ #define SPI2_SCK PB13 #define SPI2_MISO PB14 #define SPI2_MOSI PB15void spi2_gpio_msp_init();void spi2_gpio_msp_de_init();/********************************SPI3 配置**********************************************/ void bsp_SpiHandleInit(SPI_HandleTypeDef *handle, uint32_t BaudRatePrescaler, spi_mode_type mode);#endif //STM32_F1XX_TEMPLATE_BSP_SPI_H 源文件 /******************************************************************************** Copyright (c) [scl]。保留所有权利。* 本文仅供个人学习和研究使用禁止用于商业用途。******************************************************************************/ #include bsp_spi.hvoid HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) {if (hspi-Instance SPI1) {__HAL_RCC_SPI1_CLK_ENABLE();spi1_gpio_msp_init();} else if (hspi-Instance SPI2) {/* SPI2 clock enable */__HAL_RCC_SPI2_CLK_ENABLE();spi2_gpio_msp_init();} else if (hspi-Instance SPI3) {}}void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) {if (hspi-Instance SPI1) {__HAL_RCC_SPI1_CLK_DISABLE();spi1_gpio_msp_de_init();} else if (hspi-Instance SPI2) {/* SPI2 clock enable */__HAL_RCC_SPI2_CLK_DISABLE();spi2_gpio_msp_de_init();} else if (hspi-Instance SPI3) {} }void bsp_SpiHandleInit(SPI_HandleTypeDef *handle, uint32_t BaudRatePrescaler, spi_mode_type mode) {if (handle NULL) {error_handle();} else {handle-Init.BaudRatePrescaler BaudRatePrescaler;switch (mode) {case spi_mode_0:handle-Init.CLKPhase SPI_PHASE_1EDGE;handle-Init.CLKPolarity SPI_POLARITY_LOW;break;case spi_mode_1:handle-Init.CLKPhase SPI_PHASE_2EDGE;handle-Init.CLKPolarity SPI_POLARITY_LOW;break;case spi_mode_2:handle-Init.CLKPolarity SPI_POLARITY_HIGH;handle-Init.CLKPhase SPI_PHASE_1EDGE;break;case spi_mode_3:handle-Init.CLKPolarity SPI_POLARITY_HIGH;handle-Init.CLKPhase SPI_PHASE_2EDGE;break;}if (HAL_SPI_Init(handle) ! HAL_OK) {error_handle();}} } /********************************SPI1 配置**********************************************/ __weak void spi1_gpio_msp_init() {stm32_pin_define_mode_set(stm_get_pin(SPI1_SCK), pin_mode_output_af_pp);stm32_pin_define_mode_set(stm_get_pin(SPI1_MISO), pin_mode_input);stm32_pin_define_mode_set(stm_get_pin(SPI1_MOSI), pin_mode_output_af_pp); }__weak void spi1_gpio_msp_de_init() {stm32_pin_define_reset(stm_get_pin(SPI1_SCK));stm32_pin_define_reset(stm_get_pin(SPI1_MISO));stm32_pin_define_reset(stm_get_pin(SPI1_MOSI)); }/********************************SPI2 配置**********************************************/ __weak void spi2_gpio_msp_init() {stm32_pin_define_mode_set(stm_get_pin(SPI2_SCK), pin_mode_output_af_pp);stm32_pin_define_mode_set(stm_get_pin(SPI2_MISO), pin_mode_input);stm32_pin_define_mode_set(stm_get_pin(SPI2_MOSI), pin_mode_output_af_pp); }__weak void spi2_gpio_msp_de_init() {stm32_pin_define_reset(stm_get_pin(SPI2_SCK));stm32_pin_define_reset(stm_get_pin(SPI2_MISO));stm32_pin_define_reset(stm_get_pin(SPI2_MOSI)); }
http://www.zqtcl.cn/news/273416/

相关文章:

  • 个人备案 网站内容网站备案如何查询
  • 宿州科技网站建设百度网站外链发布平台
  • 织梦移动网站wordpress父文章显示不全
  • 游戏攻略网站怎么做网站开发需求确认书
  • 做高大上分析的网站电商到底干嘛的
  • 物流网站哪个好网络推广就找南昌莫非传媒
  • 查看网站空间企业网站管理系统介绍
  • 重庆市工程建设信息网新网站艺术品商城网站开发
  • 上海网站制作商wordpress改主题
  • 钰鸣厦门网站建设2023热点新闻事件
  • 网络营销的主要形式有建设网站免费搭建网站哪个好
  • 建一个网站需要哪些人aso是什么意思
  • 电商网站有哪些淘宝运营培训班哪里有
  • 网站开发网站制作太原优化排名推广
  • 佛山市网站开发桥西区建设局网站
  • 怎么制作网站应用云主机上传wordpress
  • flash网站代做马鞍山网站建设制作公司
  • 温州网站的优化wordpress 注册邮箱验证失败
  • php网站开发实例视频教程宁波seo运营推广平台排名
  • 网络营销网站开发设计公司网站推广营销
  • 2015年做那个网站致富wordpress最新模板
  • 做网站开发平台北京广告公司有哪些
  • 郑州企业建站系统模板兰州需要做网站的公司有哪些
  • 怎样做网站卖东西 自己有货句容网络公司
  • 网站建设协议书 保密条款免费发布推广的网站
  • 网站首页外链上海网站建设联系方式
  • 陕西网站建设优化技术2023年1月热点新闻事件
  • 广东省建设银行招聘网站免费搭建个人网站
  • 知名商城网站建设公司wordpress主题 汉化
  • 网站上线做什么pc网站如何做移动适配