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

wordpress积分墙优速网站建设优化seo

wordpress积分墙,优速网站建设优化seo,做正规网站,网络营销外包公司上班关于GD32引脚PA13、PA15、PB3、PB4配置为普通引脚的问题 在实际开发中,经常会遇到引脚资源受限需要将一些具有特定功能的引脚配置为普通引脚或其他引脚功能使用的情况。 博主之前遇到过类似的情况,都正常解决了。但偶尔也会出现在配置引脚时少了一些配…

关于GD32引脚PA13、PA15、PB3、PB4配置为普通引脚的问题

在实际开发中,经常会遇到引脚资源受限需要将一些具有特定功能的引脚配置为普通引脚或其他引脚功能使用的情况。

博主之前遇到过类似的情况,都正常解决了。但偶尔也会出现在配置引脚时少了一些配置,结果导致代码运行时偶尔出现问题,最终排查出了是引脚配置问题,因此特地记录下来,供有需求的同学参考。

以GD32F307为例,在使用外置sram芯片时,使用了PB3、PB4作为SPI通讯的SCK和MISO引脚。
在代码编写和调试时,忽视了PB3和PB4的默认功能是JTDO和NJTRST功能,直接将PB3、PB4当做普通SPI引脚使用,由于我调试时一致使用JLINK连接芯片进行在线调试,在这个时候sram芯片的驱动一直正常,读写数据也正常,也导致我再一开始没有发现这个问题。

后来交给测试人员测试功能时,反馈有时候出现数据丢失的情况。博主排查后发现是sram读写数据失败导致,用示波器排查波形发现在在读写sram时,SCK没有时钟信号发出。博主很奇怪,为何之前调试时没有出现过这种情况?于是乎,连接上JILNK在线调试,用示波器一看,果然,此时sram读写数据都是SCK线上是有正常时钟发出的。。。

在这种情况下,排查了数据手册(datasheet)上SPI相关的引脚,结果发现了问题的根本所在:PB3引脚默认功能为JTDO,PB4引脚默认功能是NJTRST,他们是JTAG调试方式时用的,博主使用的是SWD的方式,且这两个引脚要配置为SPI功能需要做重定向处理,即将关闭这两个引脚JTAG相关功能,这样配置之后,测试发现一切正常了。
在这里插入图片描述

#define GPIO_SWJ_NONJTRST_REMAP          ((uint32_t)0x00300000U | (PCF0_SWJ_CFG(1) >> 16))                /*!< full SWJ(JTAG-DP + SW-DP),but without NJTRST */
#define GPIO_SWJ_SWDPENABLE_REMAP        ((uint32_t)0x00300000U | (PCF0_SWJ_CFG(2) >> 16))                /*!< JTAG-DP disabled and SW-DP enabled */
#define GPIO_SWJ_DISABLE_REMAP           ((uint32_t)0x00300000U | (PCF0_SWJ_CFG(4) >> 16))                /*!< JTAG-DP disabled and SW-DP disabled */
#define GPIO_SPI2_REMAP                  ((uint32_t)0x00200000U | (AFIO_PCF0_SPI2_REMAP >> 16))           /*!< SPI2 remapping*/

代码如下:

/*** @brief    sram spi配置* @param    None* @retval   None*/
void sram_spi_init(void)
{spi_parameter_struct spi_init_struct;rcu_periph_clock_enable(RCU_GPIOB);rcu_periph_clock_enable(RCU_GPIOE);rcu_periph_clock_enable(RCU_SPI2);/* SPI2_SCK: PB3* SPI2_MISO:PB4* SPI2_MOSI:PB5* SPI2_CS:  PE1* HOLD:     PE0*/gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP, ENABLE);/*PB3、PB4默认为JTAG引脚,使用SPI需失能JTAG功能,否则会导致SPI引脚功能异常,如:不DEBUG时SCK不产生时钟*/gpio_init(GPIOB, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_3 | GPIO_PIN_5);//MISO引脚可配置为推挽输出、浮空输入、上拉输入皆可gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_4);gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_1);//此处硬件改线占用了板子DI引脚,后续硬件版本会有改动gpio_init(GPIOE, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0);/*HOLD引脚设置为1禁用该功能*/spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;spi_init_struct.device_mode          = SPI_MASTER;spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;spi_init_struct.clock_polarity_phase = SPI_CK_PL_LOW_PH_1EDGE;//重要!重要!重要!该SRAM芯片需要配置为时钟空闲时为低电平,在第一个跳变沿采样spi_init_struct.nss                  = SPI_NSS_SOFT;//默认为软件NSSspi_init_struct.prescale             = SPI_PSC_8;//注意SPI芯片支持的最高速率spi_init_struct.endian               = SPI_ENDIAN_MSB;spi_init(SPI2, &spi_init_struct);SPI_SRAM_CS_HIGH();//初始拉高CSSPI_SRAM_HOLD_HIGH();//HOLD默认为高,禁用该功能,否则可能导致读写失败spi_enable(SPI2);
}

因此,在使用到引脚PA13、PA15、PB3、PB4等比较特殊的引脚时,一定仔细查看下手册上的定义再进行配置。

http://www.mmbaike.com/news/89709.html

相关文章:

  • 自学做衣服的网站百度收录网站提交入口
  • 可以做自媒体的网站最新消息今天的新闻
  • 东莞企业网站咨询谷歌怎么投放广告
  • 有没有帮人做CAD的网站网页友情链接
  • 网站设计与编辑2021最新免费的推广引流软件
  • 网络公司网站制作岗位职责世界网站排名查询
  • 大数据网站开发工程师中国seo高手排行榜
  • php动态网站开发题目网页设计制作网站模板图片
  • wordpress批量目录天津seo公司
  • 如何用dw做网站地图做百度seo
  • 网站建设课结课感受网络营销推广渠道有哪些
  • 建立网站用英语厦门谷歌推广
  • 08影院WordPress源码seo优化方案案例
  • 网站全屏轮播怎么做磁力吧ciliba
  • 做电信网站运营网站优化的意义
  • 关于门户网站建设自己怎么优化网站
  • 如何提高网站的收录量网店运营的工作内容
  • 做网站要租服务器百度高级搜索技巧
  • 成都网站优化教程旅游营销推广方案
  • 和网站建设相关的行业seo优化运营
  • 网站设计工程师竞价推广的基本流程
  • 做网站一般做多大的通过百度指数不能判断出
  • 网站开发设计招聘自媒体营销的策略和方法
  • 手机网站被禁止访问怎么打开网站如何被搜索引擎收录
  • 大型行业门户网站开发建设免费域名申请的方法
  • 凯里做网站推广普通话奋进新征程
  • 网站模板建设报价关键词排名优化技巧
  • 福州外文网站建设推广方案应该有哪些方面
  • 比特币wordpress插件淘宝关键词优化推广排名
  • 宜昌市做网站网上卖产品怎么推广