打印
[STM8]

stm8l051f3p6串口发送失败

[复制链接]
319|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2021-1-5 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想通过串口tx打印调试信息,但是始终调不通,没用中断,没用rx。示波器观察PA2始终高电平。

代码如下:

void SysClkInit(void)
{
    CLK_CKDIVR_bit.CKM = 3;
    CLK_ICKCR_bit.HSION = 1;
    CLK_SWR = 1;

    CLK_PCKENR1_bit.PCKEN15 = 1;       //USART1
    CLK_PCKENR1_bit.PCKEN10 = 1;       //TIM2

    CLK_PCKENR2_bit.PCKEN27 = 1;        //Boot ROM
    CLK_PCKENR2_bit.PCKEN20 = 1;        //ADC1
}


void SysUSART1Init(void)
{
    SYSCFG_RMPCR1_bit.USART1TR_REMAP = 1;       //USART1_TX on PA2 and USART1_RX on PA3
    PA_DDR_DDR2 = 1;            //output
    PA_ODR_ODR2 = 1;            //data
    PA_CR1_C12 = 1;             //push pull
    PA_CR2_C22 = 1;             //10M

    USART1_CR1_bit.M = 0;       //1 start bit, 8 data bits, n stop bit
    USART1_CR3_bit.STOP0 = 0;
    USART1_CR3_bit.STOP1 = 0;   //1 stop bit
    USART1_CR1_bit.PCEN = 0;    //parity disable
    USART1_BRR2 = 0x00;         //9600
    USART1_BRR1 = 0x0D;

    USART1_CR2_bit.TEN = 1;     //transmitter enable
    USART1_CR1_bit.USARTD = 0;  //usart enable
}


void UsartTxAByte(unsigned char ucData)
{
    USART1_DR = ucData;
    while (0 == USART1_SR_bit.TXE);
}
收藏

使用特权

评论回复
沙发
paotangsan| | 2021-2-2 08:42 | 只看该作者
初始化有问题啊

使用特权

评论回复
板凳
renzheshengui| | 2021-2-2 08:49 | 只看该作者
io口的代码没有啊

使用特权

评论回复
地板
wakayi| | 2021-2-2 08:51 | 只看该作者
中断使能了没有

使用特权

评论回复
5
wowu| | 2021-2-2 08:52 | 只看该作者
根本就没有开启中断吧

使用特权

评论回复
6
xiaoqizi| | 2021-2-2 08:53 | 只看该作者
纯粹就是代码有问题

使用特权

评论回复
7
内政奇才| | 2021-2-2 09:26 | 只看该作者

USART1_CR1_bit.USARTD = 0;  //usart enable

串口使能不应该是等于1吗  还是通过其他程序进行使能了??

使用特权

评论回复
8
麻花油条| | 2021-2-2 09:26 | 只看该作者

库函数里不是有例程么,照着例程配置来吧

使用特权

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

本版积分规则

945

主题

2682

帖子

5

粉丝