打印
[STM32F1]

想在PB12(USART3_CK)脚输出一个大约1MHz的时钟信号

[复制链接]
2879|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Bingoes|  楼主 | 2016-1-4 17:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想在PB12(USART3_CK)脚输出一个大约1MHz的时钟信号,该如何实现呢?
设置大致如下:
APB1时钟为36MHz
将PB12设为通用推挽输出
USART3->CR2|=0x3C00; //STOP=11:1.5个停止位,CLKEN=1:使能CK引脚,CPOL=1:总线空闲时CK引脚为高电平
USART3->CR3|=0x0038; //SCEN=1:使能智能卡模式,NACK=1,HDSEL=1:单线半双工模式
USART3->GTPR|=36/2; //智能卡时钟=系统时钟36分频
USART3->CR1|=0x3608; //USART3使能,M=1:9位字长,PCE=1:校验控制使能,PS=1:奇校验,TE=1,RE=0

但是在PB12口用万用表测量,发现并没有时钟信号输出啊。想请教一下各位大神,该如何设置才能有信号输出呢?谢谢
沙发
Bingoes|  楼主 | 2016-1-6 10:30 | 只看该作者
本帖最后由 Bingoes 于 2016-1-6 10:31 编辑

自己结贴:之前忘了打开USART3总线时钟了,在进行如下设置后,BP12向外输出1MHz时钟信号....
        RCC->APB2ENR|=1<<3;//先使能外设IO PORTB时钟
        RCC->APB2ENR|=(1<<0); //IO端口复用时钟开启
        RCC->APB1ENR|=(1<<18); //使能USART3总线时钟
        
        GPIOB->CRH&=0xF000000F;//PB9-14配置清0
        GPIOB->CRH|=0x087b3f70;//PB14=上拉输入,PB12(CK)复用推挽输出,PB11(RST)通用推挽输出,PB10(IO)复用开漏输出
        RCC->APB1RSTR|=1<<18;   //复位串口3
        RCC->APB1RSTR&=~(1<<18);//停止复位
        USART3->GTPR&=0x0000;
        USART3->GTPR|=36/2; //智能卡时钟=36MHz 36分频
        USART3->CR2|=(1<<11);//CLKEN=1:使能CK引脚
        USART3->CR1|=(1<<13);//UE=1:USART3模块使能
        USART3->CR3|=(1<<5);//SCEN=1:使能智能卡模式

使用特权

评论回复
板凳
zhd3| | 2016-8-18 17:19 | 只看该作者
您好!!有用库函数配置的程序么?发一份参考一下啊,谢谢!!!

使用特权

评论回复
地板
gejigeji521| | 2016-8-18 22:27 | 只看该作者
有没有基于库函数的,寄存器操作的不好学啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

87

帖子

0

粉丝