OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2791|回复: 0

关于PB3映射TIM2_CH2会关掉JTAG和SW功能(void JTAG_Set(SWD_ENABLE)操作后)和FSMC 中文手册寄存器有问题

[复制链接]

51

主题

214

帖子

0

精华

高级会员

Rank: 4

积分
561
金钱
561
注册时间
2011-4-11
在线时间
43 小时
发表于 2019-10-17 13:38:12 | 显示全部楼层 |阅读模式
本帖最后由 Julius007 于 2019-10-18 07:38 编辑

工程概况:采用STM32F103VET6,PB3作为TIM2-CH2输出PWM给液晶,液晶FSMC 8位数据控制
问题1:当采用贵公司的JTAG_Set(SWD_ENABLE)后,JTAG会禁止,但是SW也会禁止;采用寄存器操作的时候,查看网上大多数网友都是采用这个函数来禁止,但是有一小部分好像也是出现我这个问题,没有找到好的办法;
现象如下:

寄存器数值有问题

寄存器数值有问题

JTAG_Set函数

JTAG_Set函数

JTAG 和SW均禁止现象

JTAG 和SW均禁止现象

解决方法如下:AFIO->MAPR = 0x02000000; //SW模式在复位情况下烧录,就可以解锁了!
解决途径:不得不鼓吹一下正点原子的强大售后服务了,阿里旺旺帮忙在线解答,非常感谢!
11.png
出现问题的个人理解:

JTAG_SW寄存器描述

JTAG_SW寄存器描述

These bits are write-only (when read, the value is undefined).  这些位只能写,当读的时候,读出来的值是不确定的;所以可能是:

void JTAG_Set(u8 mode)
{
        u32 temp;
        temp=mode;
        temp<<=25;
        RCC->APB2ENR|=1<<0;     //开启辅助时钟           
        AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]                  会读一次    值可能不确定(本人理解,不一定对,大家可以提出不同看法)
        AFIO->MAPR|=temp;       //设置jtag模式                                    读一次    值可能不确定(本人理解,不一定对,大家可以提出不同看法)
}
所以只是怀疑是不是读的原因,然后出现不确定,赋值不对,这个只是怀疑,后面技术会帮忙测试,我自己测试已经通过,直接赋值就可以准确把JTAG禁止,SW保留。如果是这样的话,这个函数估计有一些MCU不适用,而且以后的只写寄存器就不能这么赋值,这个新的问题,那怎么操作才合适呢,直接赋值也不好操作。

问题2:FSMC的中文手册和英文手册寄存器对不上,有点小问题,《STM32F1开发指南》里面引用的中文寄存器,核实后可以修改一下。
11111.jpg 22222222.jpg 111111111111.jpg
解决问题方法:英语很重要,还是用英文技术手册吧!


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-29 02:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表