984|9

441

帖子

3

TA的资源

纯净的硅(高级)

楼主
 

【兆易GD32H759I-EVAL】串口printf测试 [复制链接]

  本帖最后由 TL-LED 于 2024-5-9 18:17 编辑

这篇来测试下串口printf功能。

 

一、硬件电路

 

开发板串口硬件电路图部分,串口 USART0 连接到CH340E端口。

 

二、程序部分

 

2.1、usart.c

#include "main.h"

/* retarget the C library printf function to the USART */
int fputc(int ch, FILE *f)
{
    usart_data_transmit(EVAL_COM, (uint8_t)ch);

    while(RESET == usart_flag_get(EVAL_COM, USART_FLAG_TBE));

    return ch;
}


void init_usart(uint32_t buad)
{
    /* enable GPIO clock */
    rcu_periph_clock_enable(EVAL_COM_GPIO_CLK);

    /* enable USART clock */
    rcu_periph_clock_enable(EVAL_COM_CLK);

    /* connect port to USART0 TX */
    gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, EVAL_COM_TX_PIN);

    /* connect port to USART0 RX */
    gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, EVAL_COM_RX_PIN);

    /* configure USART TX as alternate function push-pull */
    gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, EVAL_COM_TX_PIN);
    gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_60MHZ, EVAL_COM_TX_PIN);

    /* configure USART RX as alternate function push-pull */
    gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, EVAL_COM_RX_PIN);
    gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_60MHZ, EVAL_COM_RX_PIN);

    /* USART configure */
    usart_deinit(EVAL_COM);
    usart_word_length_set(EVAL_COM, USART_WL_8BIT);
    usart_stop_bit_set(EVAL_COM, USART_STB_1BIT);
    usart_parity_config(EVAL_COM, USART_PM_NONE);
    usart_baudrate_set(EVAL_COM, buad);
    usart_receive_config(EVAL_COM, USART_RECEIVE_ENABLE);
    usart_transmit_config(EVAL_COM, USART_TRANSMIT_ENABLE);
    usart_enable(EVAL_COM);
}

 

2.2、usart.h

#ifndef _USART_H
#define _USART_H

#include "stdint.h"


/* eval board low layer COM */
#define COMn                             1U

/* definition for COM, connected to USART0 */
#define EVAL_COM                         USART0
#define EVAL_COM_CLK                     RCU_USART0

#define EVAL_COM_TX_PIN                  GPIO_PIN_9
#define EVAL_COM_RX_PIN                  GPIO_PIN_10

#define EVAL_COM_GPIO_PORT               GPIOA
#define EVAL_COM_GPIO_CLK                RCU_GPIOA
#define EVAL_COM_AF                      GPIO_AF_7


void init_usart(uint32_t buad);


#endif

 

2.3、main.c

#include "main.h"

void cache_enable(void);


int main(void)
{
	cache_enable();
	systick_config();
	init_usart(115200);
	init_led();

	while(1) 
	{
		led1_tog();
		printf("GD32H759 usart0 printf test! \r\n");
		delay_1ms(500);
	}
}

void cache_enable(void)
{
    /* enable i-cache */
    SCB_EnableICache();

    /* enable d-cache */
    SCB_EnableDCache();
}

 

2.4、选择Use MicroLIB

 

三、程序运行

 

下载程序复位开发板后,串口输出内容。

 

最新回复

本帖最后由 lugl4313820 于 2024-5-13 07:31 编辑 [attach]808129[/attach][attach]808130[/attach]    我这里向楼主提一个建议,你所帖出来的代码,最好的main.h也给帖出来,printf是必须的<stdio.h>也许是楼主大佬放在main.h中集中引用了,但是对于printf的示例工程中,最好把这个<stdio.h>放在这里,以免在其他人“抄”了你的代码后,会报头文件引用的错误。   详情 回复 发表于 2024-5-13 07:14
点赞 关注
 
 

回复
举报

9792

帖子

24

TA的资源

版主

沙发
 

美国艺术是啥意思?


点评

什么美国艺术  详情 回复 发表于 2024-5-10 11:10
 
 
 

回复

441

帖子

3

TA的资源

纯净的硅(高级)

板凳
 
littleshrimp 发表于 2024-5-10 06:46 美国艺术是啥意思?

什么美国艺术

点评

帖子里的内容  详情 回复 发表于 2024-5-10 11:15
 
 
 

回复

6105

帖子

4

TA的资源

版主

4
 

这芯片目前是兆易最好的芯片了。

点评

H7的性能比较强  详情 回复 发表于 2024-5-10 14:39
 
 
 

回复

9792

帖子

24

TA的资源

版主

5
 
TL-LED 发表于 2024-5-10 11:10 什么美国艺术

帖子里的内容


Screenshot_20240510_111350_com.microsoft.emmx.jpg (0 Bytes, 下载次数: 0)

Screenshot_20240510_111350_com.microsoft.emmx.jpg

点评

奇怪,我这边看着都正常  详情 回复 发表于 2024-5-10 14:40
 
 
 

回复

441

帖子

3

TA的资源

纯净的硅(高级)

6
 
damiaa 发表于 2024-5-10 11:14 这芯片目前是兆易最好的芯片了。

H7的性能比较强

 
 
 

回复

441

帖子

3

TA的资源

纯净的硅(高级)

7
 

奇怪,我这边看着都正常

点评

是我的手机浏览器自动给翻译了  详情 回复 发表于 2024-5-10 14:49
 
 
 

回复

9792

帖子

24

TA的资源

版主

8
 
TL-LED 发表于 2024-5-10 14:40 奇怪,我这边看着都正常

是我的手机浏览器自动给翻译了

个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

6992

帖子

11

TA的资源

版主

9
 
本帖最后由 lugl4313820 于 2024-5-13 07:31 编辑

  

我这里向楼主提一个建议,你所帖出来的代码,最好的main.h也给帖出来,printf是必须的<stdio.h>也许是楼主大佬放在main.h中集中引用了,但是对于printf的示例工程中,最好把这个<stdio.h>放在这里,以免在其他人“抄”了你的代码后,会报头文件引用的错误。

点评

好的  详情 回复 发表于 2024-5-13 08:23
 
 
 

回复

441

帖子

3

TA的资源

纯净的硅(高级)

10
 
lugl4313820 发表于 2024-5-13 07:14    我这里向楼主提一个建议,你所帖出来的代码,最好的main.h也给帖出来,printf是必须的< ...

好的

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表