打印

GD32F303RCT6串口无输出,printf函数无效

[复制链接]
4903|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nieke|  楼主 | 2021-6-27 18:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
* USART0串口初始化函数
* 参数:波特率
* 返回值:无        */
void uart0_init(uint32_t bound)
{       
        /* 使能 GPIOA 时钟 */
        rcu_periph_clock_enable(RCU_GPIOA);

        /* 使能 USART0 时钟 */
        rcu_periph_clock_enable(RCU_USART0);

        /* PA9  复用为 USART0_Tx */
        gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_9);

        /* PA10 复用为 USARTx_Rx */
        gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ,GPIO_PIN_10);
                               
        /* USART0 初始化配置 */
        usart_deinit(USART0);
        usart_baudrate_set(USART0, bound);                                                /* 设置波特率 */  
        usart_word_length_set(USART0, USART_WL_8BIT);   /* 字长为8位数据格式 */
        usart_stop_bit_set(USART0, USART_STB_1BIT);     /* 1个停止位 */
        usart_parity_config(USART0, USART_PM_NONE);        /* 无奇偶校验位 */
        usart_receive_config(USART0, USART_RECEIVE_ENABLE);                /* 使能接收 */
        usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);        /* 使能发送 */       
        usart_enable(USART0);                                                                        /* 使能串口0 */

        usart_interrupt_enable(USART0, USART_INT_RBNE);//Enable recieve interrupt
        nvic_irq_enable(USART0_IRQn, 0, 1);
        usart_flag_clear(USART0, USART_FLAG_RBNE);//Clear RBNE flag
}

int fputc(int ch, FILE *f)
{
        usart_data_transmit(USART0, (uint8_t)ch);
        while (RESET == usart_flag_get(USART0, USART_FLAG_TBE));
        return ch;
}

使用特权

评论回复
评论
nieke 2021-6-27 18:53 回复TA
编译器用的是keil5,不只为何串口时钟无反应。硬件无问题,因为用STM32的库时能正常串口能正常启动打印数据 
沙发
yklstudent| | 2021-6-28 09:07 | 只看该作者
看这风格好像STM32F1的标准库风格

使用特权

评论回复
板凳
fengxuwuzu| | 2021-6-28 09:42 | 只看该作者
解决了么?遇到了同样的问题。

使用特权

评论回复
地板
LcwSwust| | 2021-6-28 11:05 | 只看该作者
直接调用fputc看能否发送数据

使用特权

评论回复
5
回复就哭哭| | 2021-6-28 23:43 | 只看该作者
跟ST 好像哦。能不能直接通用啊?

使用特权

评论回复
6
回复就哭哭| | 2021-6-28 23:43 | 只看该作者
如果可以直接调用就好了/。

使用特权

评论回复
7
sonicll| | 2021-6-29 08:50 | 只看该作者
Keil设置里勾选“USE MicroLib”了没有?

使用特权

评论回复
8
24kdewhite| | 2021-10-26 09:16 | 只看该作者
解决了吗,也遇到了,不只是printf,发一个字符也发不出去。。。
官方例程

使用特权

评论回复
9
24kdewhite| | 2021-10-26 10:28 | 只看该作者
24kdewhite 发表于 2021-10-26 09:16
解决了吗,也遇到了,不只是printf,发一个字符也发不出去。。。
官方例程 ...

我这里好了,是硬件的问题,232发射脚虚焊了,,,,,官方例程没问题

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝