打印

STM8S103F3P UART1初始化问题

[复制链接]
1582|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wq7610|  楼主 | 2013-8-14 08:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
型号:STM8S103F3P6
时钟初始化:
void CLK_Configuration(void)
{
        /* Configure clock prescaler */
        CLK_CKDIVR = 0x08;          /* To be programmed with different value */
                                /* Fmaster, Fmaster/2(8MHZ), fcup = fmaster    */
        /* To select external source by automtic switch */
        CLK_PCKENR1 = 0x34;//enable Time4 and Time2 ,UART1 clock
        CLK_PCKENR2 = 0x0C;//enable Adc and AWU clock
        //CLK_SWCR |= 0x02;            /* Enable switch */
        // CLK_SWR   = 0xB4;            /* Select HSE */
        //while(!(CLK_SWCR & 0x08));//等待切换完成     
}

UART1初始化
void init_UART(void)
{       
        UART1_CR1 = 0x00; //8bit 无校验
        UART1_CR3 = 0x00; // 1 停止位
        UART1_BRR2 = 0x1b;//1200bit
        UART1_BRR1 = 0xa0;
        UART1_CR2 = 0xac;//允许发送和接收中断,使能发送和接收
}
现在问题是:

仿真的时候UART1寄存器永远初始化不了,都是0x00,除了UART1_SR = 0xc0


开发环境:STVP,C编译器:CXSTM8

现在项目很急,请各位仁兄,支支招,我已搞了一个通宵了




沙发
xiaochun_gao| | 2013-8-14 10:55 | 只看该作者
没用过这个芯片,给不了什么帮助,帮顶。
善意提醒:
看看芯片资料,该芯片UART1是否能使用?是否只有UART2?;
头文件中对寄存器的地址定义是否与仿真看到的相同,比如,UART1_CR1,仿真界面是0X5234,头文件是否也是一样?

使用特权

评论回复
板凳
wq7610|  楼主 | 2013-8-14 14:04 | 只看该作者
xiaochun_gao 发表于 2013-8-14 10:55
没用过这个芯片,给不了什么帮助,帮顶。
善意提醒:
看看芯片资料,该芯片UART1是否能使用?是否只有UART2? ...

谢谢,这些都确认N遍了,无解中啊.............

使用特权

评论回复
地板
wq7610|  楼主 | 2013-8-14 16:22 | 只看该作者
问题找到,把时钟初始化中
CLK_PCKENR1 = 0x34;//enable Time4 and Time2 ,UART1 clock
        CLK_PCKENR2 = 0x0C;//enable Adc and AWU clock
这两句注释掉就可以初始化了,但不知为何,先用着吧,时间来不及了

使用特权

评论回复
5
cjhk| | 2013-8-14 19:07 | 只看该作者
问题解决了就好   楼主  很不错   顶一个  不错

使用特权

评论回复
6
feilusia| | 2013-8-15 10:37 | 只看该作者
wq7610 发表于 2013-8-14 16:22
问题找到,把时钟初始化中
CLK_PCKENR1 = 0x34;//enable Time4 and Time2 ,UART1 clock
        CLK_PCKENR2 ...

你把UART1的时钟初始化也注释掉了

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝