4103|2

6107

帖子

4

TA的资源

版主

楼主
 

【GD32-colibri-F350RX】+UART中断测试 [复制链接]

本帖最后由 damiaa 于 2018-9-18 14:44 编辑

                                                  【GD32-colibri-F350RX】+UART中断测试
继续上篇文章中提到的工程,准备用UART1(上篇中也是,不是UART0)1,拷贝中断例子Examples\USART\Transmitter&receiver_interrupt中的
main.c
gd32f3x0_it.c
gd32f3x0_it.h
替代现有的工程中的对应文件
2,gd32f3x0_it.c修改USART0_IRQHandler函数名为USART1_IRQHandler
3,nvic_irq_enable(USART0_IRQn, 0, 0);修改为
    nvic_irq_enable(USART1_IRQn, 0, 0);
4,编译运行
5,设置为相应串口和115200,N,8,1。打开串口
6.调试看结果。

7,附件
GD32F3x0_Firmware_Library_V1.0.0_Colibri-F350_.zip (4.29 MB, 下载次数: 27)
8,继续做了些修改,这样初始化2个串口方便些。
gd323x0_eval.h中
#define EVAL_COM1                        USART0
#define EVAL_COM1_CLK                    RCU_USART0
#define EVAL_COM1_TX_PIN                 GPIO_PIN_9
#define EVAL_COM1_RX_PIN                 GPIO_PIN_10
#define EVAL_COM1_GPIO_PORT               GPIOA
#define EVAL_COM1_GPIO_CLK                RCU_GPIOA
#define EVAL_COM1_AF                      GPIO_AF_1
#define EVAL_COM1_IRQ                     USART0_IRQn
#define EVAL_COM2_IRQ                     USART1_IRQn
gd323x0_eval.c中
static rcu_periph_enum COM_CLK[COMn]  = {EVAL_COM1_CLK,EVAL_COM2_CLK};
static uint32_t COM_TX_PIN[COMn]      = {EVAL_COM1_TX_PIN,EVAL_COM2_TX_PIN};
static uint32_t COM_RX_PIN[COMn]      = {EVAL_COM1_RX_PIN,EVAL_COM2_RX_PIN};
static uint32_t COM_GPIO_PORT[COMn]      = {EVAL_COM1_GPIO_PORT,EVAL_COM2_GPIO_PORT};
static uint32_t EVAL_COM_AF[COMn]      = {EVAL_COM1_AF,EVAL_COM2_AF};
static uint32_t EVAL_COM_GPIO_CLK[COMn]      = {EVAL_COM1_GPIO_CLK,EVAL_COM2_GPIO_CLK};
void gd_eval_com_init(uint32_t com)
{
    uint32_t COM_ID;
    if(EVAL_COM1 == com){
        COM_ID = 0U;
    }
    if(EVAL_COM2 == com){
        COM_ID = 1U;
    }
    else{
    }
    /* enable COM GPIO clock */
    rcu_periph_clock_enable(EVAL_COM_GPIO_CLK[COM_ID]);
    /* enable USART clock */
    rcu_periph_clock_enable(COM_CLK[COM_ID]);
    /* connect port to USARTx_Tx */
    gpio_af_set(COM_GPIO_PORT[COM_ID], EVAL_COM_AF[COM_ID], COM_TX_PIN[COM_ID]);
    /* connect port to USARTx_Rx */
    gpio_af_set(COM_GPIO_PORT[COM_ID], EVAL_COM_AF[COM_ID], COM_RX_PIN[COM_ID]);
    /* configure USART Tx as alternate function push-pull */
    gpio_mode_set(COM_GPIO_PORT[COM_ID], GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_TX_PIN[COM_ID]);
    gpio_output_options_set(COM_GPIO_PORT[COM_ID], GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, COM_TX_PIN[COM_ID]);
    /* configure USART Rx as alternate function push-pull */
    gpio_mode_set(COM_GPIO_PORT[COM_ID], GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_RX_PIN[COM_ID]);
    gpio_output_options_set(COM_GPIO_PORT[COM_ID], GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, COM_RX_PIN[COM_ID]);
    /* USART configure */
    usart_deinit(com);
    usart_baudrate_set(com, 115200U);
    usart_receive_config(com, USART_RECEIVE_ENABLE);
    usart_transmit_config(com, USART_TRANSMIT_ENABLE);
    usart_enable(com);
}
关于UART:某些资料里有一点命名不一样
                  代码             uart0 uart1
                  某些资料       uart1 uart2 比如:管脚分配与开发板布局 GD32F3x0_User_Manual_CN_v1.0的某些部分。






此帖出自GD32 MCU论坛

最新回复

请教一下:UART中断是否直接用下载线联接,还是另外连线至电脑?  详情 回复 发表于 2018-9-18 07:13
点赞 关注(1)
 

回复
举报

932

帖子

3

TA的资源

纯净的硅(中级)

沙发
 
请教一下:UART中断是否直接用下载线联接,还是另外连线至电脑?
此帖出自GD32 MCU论坛
 
 
 

回复

6107

帖子

4

TA的资源

版主

板凳
 
直接用下载线联接  板上的那个CH340的USB-UART口连接到了PA2,PA3。上面的程序直接跑,不用另外准备东西。
此帖出自GD32 MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表