【GD32L233C-START评测】+外挂LCD屏调试
[复制链接]
- 前言
这次按计划,开始外挂一个LCD液晶屏,在板子上选择了PB4 5 6 7 8五个IO口去与屏幕进行通讯。选择PA1做ADC采集端口,焊接了一个PT1000铂电阻和一个1000欧姆的高精度分压电阻。
- 初始化屏幕IO
void LCD_init(void)
{
/* enable the GPIO clock */
rcu_periph_clock_enable(RCU_GPIOB); //打开GPIO总线时钟
/* configure led GPIO port */
gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_4); //初始化IO口工作模式 LED_CS
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4);
gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_5); //初始化IO口工作模式 LED_RST
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_5);
gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_6); //初始化IO口工作模式 LED_RS
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_7); //初始化IO口工作模式 LED_SCK
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7);
gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_8); //初始化IO口工作模式 LED_SDA
gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_8);
// GPIO_BC(GPIOB) = GPIO_PIN_4; //初始化IO口状态L
// GPIO_BC(GPIOB) = GPIO_PIN_5; //初始化IO口状态L
// GPIO_BC(GPIOB) = GPIO_PIN_6; //初始化IO口状态L
// GPIO_BC(GPIOB) = GPIO_PIN_7; //初始化IO口状态L
// GPIO_BC(GPIOB) = GPIO_PIN_8; //初始化IO口状态L
gpio_bit_reset(GPIOB, GPIO_PIN_4);
gpio_bit_reset(GPIOB, GPIO_PIN_5);
gpio_bit_reset(GPIOB, GPIO_PIN_6);
gpio_bit_reset(GPIOB, GPIO_PIN_7);
gpio_bit_reset(GPIOB, GPIO_PIN_8);
}
这个IO初始化函数跟GD32F103例程里的有区别。
- 屏幕显示
- 增加了串口打印函数
直接在主函数里添加#include <stdio.h>
然后重定义一下
int fputc(int ch, FILE *f)
{
usart_data_transmit(USART0, (uint8_t) ch);
while(RESET == usart_flag_get(USART0, USART_FLAG_TBE));
return ch;
}
通过PA9 PA10串口0打印数据。
printf("usart transmit test example!");
之前改了之后一直没调通,复位板子都没有打印,然后把两个USB都断开后,再重新上电就行了,不知道是什么原因。
- 下一步
下一步就准备调试ADC,看看精度如何。
|