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

公众号申请网站网站建设运维标准

公众号申请网站,网站建设运维标准,做网站要分几部分完成,呼和浩特网站建设小程序背景:今天在一个项目调试的时候发现了一些问题,由此贴记录一下问题解决的过程。使用的芯片是GD32F305VE。使用到了CAN1和TIMER0。在使用这连个外设的时候发送了一些问题。单独使用CAN1。功能正常。单独使用TIMER0。配置为输出模式。功能正常。但是当两个…

背景:今天在一个项目调试的时候发现了一些问题,由此贴记录一下问题解决的过程。

使用的芯片是GD32F305VE。使用到了CAN1和TIMER0。在使用这连个外设的时候发送了一些问题。

单独使用CAN1。功能正常。

单独使用TIMER0。配置为输出模式。功能正常。

但是当两个功能同时使用,初始化的时候,就出问题了。


1、引脚配置

//TIMER0 引脚定义
#define   TIMER0_CH2_GPIO_PIN              GPIO_PIN_10
#define   TIMER0_CH1_GPIO_PIN              GPIO_PIN_9
#define   TIMER0_CH2N_GPIO_PIN             GPIO_PIN_15
#define   TIMER0_CH1N_GPIO_PIN             GPIO_PIN_14
//CAN1引脚定义
#define   CAN1_CLOCK                    RCU_GPIOB
#define   CAN1_GPIO                     GPIOB
#define   CAN1_TX_GPIO_PIN              GPIO_PIN_13
#define   CAN1_RX_GPIO_PIN              GPIO_PIN_12

 从引脚上看,每个是没有用到重复的引脚的。都是单独分开。

2、发现问题

但是这时候,会导致一个问题。

CAN1的初始化失败了。

//这是底层的库函数,CAN初始化
ErrStatus can_init(uint32_t can_periph, can_parameter_struct* can_parameter_init)
{uint32_t timeout = CAN_TIMEOUT;ErrStatus flag = ERROR;/* disable sleep mode */CAN_CTL(can_periph) &= ~CAN_CTL_SLPWMOD;/* enable initialize mode */CAN_CTL(can_periph) |= CAN_CTL_IWMOD;/* wait ACK */while((CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){timeout--;}/* check initialize working success */if(CAN_STAT_IWS != (CAN_STAT(can_periph) & CAN_STAT_IWS)){flag = ERROR;}else{/* set the bit timing register */CAN_BT(can_periph) = (BT_MODE((uint32_t)can_parameter_init->working_mode) | \BT_SJW((uint32_t)can_parameter_init->resync_jump_width) | \BT_BS1((uint32_t)can_parameter_init->time_segment_1) | \BT_BS2((uint32_t)can_parameter_init->time_segment_2) | \BT_BAUDPSC(((uint32_t)(can_parameter_init->prescaler) - 1U)));/* time trigger communication mode */if(ENABLE == can_parameter_init->time_triggered){CAN_CTL(can_periph) |= CAN_CTL_TTC;}else{CAN_CTL(can_periph) &= ~CAN_CTL_TTC;}/* automatic bus-off managment */if(ENABLE == can_parameter_init->auto_bus_off_recovery){CAN_CTL(can_periph) |= CAN_CTL_ABOR;}else{CAN_CTL(can_periph) &= ~CAN_CTL_ABOR;}/* automatic wakeup mode */if(ENABLE == can_parameter_init->auto_wake_up){CAN_CTL(can_periph) |= CAN_CTL_AWU;}else{CAN_CTL(can_periph) &= ~CAN_CTL_AWU;}/* automatic retransmission mode disable */if(ENABLE == can_parameter_init->no_auto_retrans){CAN_CTL(can_periph) |= CAN_CTL_ARD;}else{CAN_CTL(can_periph) &= ~CAN_CTL_ARD;}/* receive fifo overwrite mode */        if(ENABLE == can_parameter_init->rec_fifo_overwrite){CAN_CTL(can_periph) |= CAN_CTL_RFOD;}else{CAN_CTL(can_periph) &= ~CAN_CTL_RFOD;} /* transmit fifo order */if(ENABLE == can_parameter_init->trans_fifo_order){CAN_CTL(can_periph) |= CAN_CTL_TFO;}else{CAN_CTL(can_periph) &= ~CAN_CTL_TFO;}  /* disable initialize mode */CAN_CTL(can_periph) &= ~CAN_CTL_IWMOD;timeout = CAN_TIMEOUT;/* wait the ACK */while((CAN_STAT_IWS == (CAN_STAT(can_periph) & CAN_STAT_IWS)) && (0U != timeout)){timeout--;}/* check exit initialize mode */if(0U != timeout){flag = SUCCESS;}}  return flag;
}

进入这个函数后,会进入使能初始化工作工作模式。这个查看用户手册可以查到。

下图是进入函数运行中的寄存器状态。这是是出于初始化工作状态的

但退出函数之前,发现并没有退出初始化工作模式。导致初始化失败了。

3、定位问题

在定位问题的过程中,试了一下把TIMER0的初始化先屏蔽掉。结果就又正常了。

因此定位问题发生在TIMER0的初始化。

但是很奇怪,TIMER0的初始化,只初始化了通道1,和通道2,没有初始化通道0,按理说是不应该有影响的。

查看了寄存器

这个地方导致,这个脚被初始化为输出。再看下一个寄存器。

这里导致输出为高电平,和示波器抓到的波形一样。

所以这就是导致CAN1初始化失败的原因。

4、原理

5、解决方法

把通道0配置初始化为输入模式。就能解决问题了。


文章转载自:

http://QGRAQRwu.xgxbr.cn
http://qdKxQamN.xgxbr.cn
http://lFBfOeoY.xgxbr.cn
http://hAZLTqaz.xgxbr.cn
http://K5F9nVgM.xgxbr.cn
http://SWvnexF5.xgxbr.cn
http://nvqQl0VM.xgxbr.cn
http://ATxisd9X.xgxbr.cn
http://S53ZEwYb.xgxbr.cn
http://gRK2u4dJ.xgxbr.cn
http://KGPm9OpO.xgxbr.cn
http://xi5DLJgY.xgxbr.cn
http://qBGURtwS.xgxbr.cn
http://XIn78y7B.xgxbr.cn
http://aadSllAD.xgxbr.cn
http://4kXOS7I2.xgxbr.cn
http://D8850gcv.xgxbr.cn
http://zCV9gopc.xgxbr.cn
http://4tLNJFSX.xgxbr.cn
http://QTkhKsKZ.xgxbr.cn
http://F5bohlRu.xgxbr.cn
http://G4OhA7FM.xgxbr.cn
http://rkn0Vzxp.xgxbr.cn
http://yJJXsWfI.xgxbr.cn
http://3qM7T0JQ.xgxbr.cn
http://3izS3rcV.xgxbr.cn
http://hFSJD4C8.xgxbr.cn
http://2y2Ix9yL.xgxbr.cn
http://kHnEkMO8.xgxbr.cn
http://hDO5J1kh.xgxbr.cn
http://www.dtcms.com/wzjs/718727.html

相关文章:

  • 南通网站设计公司海口会计报名网站
  • 营销型网站用什么模版合适微信开放平台的发展前景
  • 纺织网站制作123纺织网青岛高端网站开发
  • 财务记账网站建设需要摊销吗优化师是干嘛的
  • c语言开发网站上海今天刚刚发生的新闻
  • 网站兼容ie7制冷+网站建设+中企动力
  • 网站网站开发的公司电话赣州吧百度贴吧
  • 网站建设 中国移动网络培训心得体会总结简短
  • 网站如何做微信支付宝支付宝支付接口门户网站cms程序
  • 那个视频网站好企业一号wordpress主题
  • 什么网站可以做头像更新wordpress 504
  • 网站设计与建设考试成立网站建设领导小组的通知
  • js做音乐网站centos建WordPress
  • 中国做的比较好的网站王也天演过的电视剧
  • 网站怎么做免费推广方案做网站时给网页增加提醒
  • cms网站地图模板网站建设推广工作描述
  • 网站赞赏医疗网站建站需求
  • 如何选择网站开发个体工商户是否能够做网站
  • 哪些外贸网站可以做soho天津建设网站的公司简介
  • 学校文化建设聚奇网站用php做网站用到的工具
  • 中山里水网站建设做网站都得会什么技术
  • 西安便宜做网站的在线做网站索引
  • 网站和网业的关系ui设计师做网站
  • 静态网站素材网站建设是如何称呼的
  • 做公司网站怎么推广WordPress透明二次元模板69
  • 制作网站商城自学网站制作教程
  • 专门做图片是网站在国外做购物网站
  • 海盐建设局网站广告设计制作合同模板
  • 成都网站的优化做网站优化如何写方案
  • 网站应用软件设计目前个人网站做地最好是哪几家