最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

gd32f305 代码

IT圈 admin 35浏览 0评论

2024年3月28日发(作者:佴婉仪)

GD32F305是一款基于ARM Cortex-M4的微控制器,通常用于嵌入式系统开发。下面是一

个简单的示例代码,演示如何使用GD32F305的GPIO和UART功能。

c

复制代码

#include "gd32f30x.h"

#define UART_BAUD_RATE 115200

void GPIO_Init(void)

{

rcu_periph_clock_enable(RCU_GPIOA);

rcu_periph_clock_enable(RCU_GPIOB);

rcu_periph_clock_enable(RCU_GPIOC);

rcu_periph_clock_enable(RCU_GPIOD);

rcu_periph_clock_enable(RCU_GPIOE);

rcu_periph_clock_enable(RCU_GPIOF);

rcu_periph_clock_enable(RCU_GPIOG);

rcu_periph_clock_enable(RCU_GPIOH);

}

void UART_Init(void)

{

rcu_periph_clock_enable(RCU_USART0);

rcu_periph_clock_enable(RCU_GPIOA);

gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);

usart_deinit(USART0);

usart_baudrate_set(USART0, UART_BAUD_RATE);

usart_word_length_set(USART0, USART_WL_8BIT);

usart_stopbit_set(USART0, USART_STB_1BIT);

usart_parity_config(USART0, USART_PM_NONE);

usart_hardwareflow_rts(USART0, USART_RTS_DISABLE);

usart_hardwareflow_cts(USART0, USART_CTS_DISABLE);

usart_receive_config(USART0, USART_RECEIVE_ENABLE);

usart_transmit_config(USART0, USART_TRANSMITTERENABLE);

usart0_interrupt_enable(USART0, USART0_IERRENABLE);

}

int main(void)

{

GPIO_Init();

UART_Init();

while (1)

{

char data = 'A';

usart0_transmit(USART0, &data, 1, 1000);

data = usart0_receive(USART0, 1, 1000);

if (data != ERROR) {

printf("%c", data);

} else {

printf("Error");

}

}

}

上述代码首先初始化了GPIO和UART模块,然后在一个无限循环中,通过UART发送一个

字符'A',并接收一个字符。如果接收成功,则将接收到的字符打印到串口终端。如果接收失

败,则打印"Error"。

2024年3月28日发(作者:佴婉仪)

GD32F305是一款基于ARM Cortex-M4的微控制器,通常用于嵌入式系统开发。下面是一

个简单的示例代码,演示如何使用GD32F305的GPIO和UART功能。

c

复制代码

#include "gd32f30x.h"

#define UART_BAUD_RATE 115200

void GPIO_Init(void)

{

rcu_periph_clock_enable(RCU_GPIOA);

rcu_periph_clock_enable(RCU_GPIOB);

rcu_periph_clock_enable(RCU_GPIOC);

rcu_periph_clock_enable(RCU_GPIOD);

rcu_periph_clock_enable(RCU_GPIOE);

rcu_periph_clock_enable(RCU_GPIOF);

rcu_periph_clock_enable(RCU_GPIOG);

rcu_periph_clock_enable(RCU_GPIOH);

}

void UART_Init(void)

{

rcu_periph_clock_enable(RCU_USART0);

rcu_periph_clock_enable(RCU_GPIOA);

gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);

usart_deinit(USART0);

usart_baudrate_set(USART0, UART_BAUD_RATE);

usart_word_length_set(USART0, USART_WL_8BIT);

usart_stopbit_set(USART0, USART_STB_1BIT);

usart_parity_config(USART0, USART_PM_NONE);

usart_hardwareflow_rts(USART0, USART_RTS_DISABLE);

usart_hardwareflow_cts(USART0, USART_CTS_DISABLE);

usart_receive_config(USART0, USART_RECEIVE_ENABLE);

usart_transmit_config(USART0, USART_TRANSMITTERENABLE);

usart0_interrupt_enable(USART0, USART0_IERRENABLE);

}

int main(void)

{

GPIO_Init();

UART_Init();

while (1)

{

char data = 'A';

usart0_transmit(USART0, &data, 1, 1000);

data = usart0_receive(USART0, 1, 1000);

if (data != ERROR) {

printf("%c", data);

} else {

printf("Error");

}

}

}

上述代码首先初始化了GPIO和UART模块,然后在一个无限循环中,通过UART发送一个

字符'A',并接收一个字符。如果接收成功,则将接收到的字符打印到串口终端。如果接收失

败,则打印"Error"。

发布评论

评论列表 (0)

  1. 暂无评论