打印
[STM32G4]

使用CubMX和Proteus学习STM32单片机(一)------LCD1602

[复制链接]
987|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
项目简介        利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus仿真验证,首先是对LCD1602的学习。
硬件模块        STM32F103R4
        LCD1602
        74HC373缓存驱动芯片
软件工具        CubMX
        Proteus
        Keil

使用特权

评论回复
沙发
欢乐家园|  楼主 | 2021-10-26 21:13 | 只看该作者
电路连接图

使用特权

评论回复
板凳
欢乐家园|  楼主 | 2021-10-26 21:14 | 只看该作者

使用特权

评论回复
地板
欢乐家园|  楼主 | 2021-10-26 21:30 | 只看该作者

使用特权

评论回复
5
欢乐家园|  楼主 | 2021-10-26 21:31 | 只看该作者
工作流程        首先创建好一个CubaMX工程,设置好PC0--PC7为LCD1602的8个数据位

使用特权

评论回复
6
欢乐家园|  楼主 | 2021-10-26 21:33 | 只看该作者

使用特权

评论回复
7
欢乐家园|  楼主 | 2021-10-26 21:33 | 只看该作者
PB0--PB2分别为LCD1602的片选位,读写位和使能位

使用特权

评论回复
8
欢乐家园|  楼主 | 2021-10-26 21:41 | 只看该作者

使用特权

评论回复
9
欢乐家园|  楼主 | 2021-10-26 21:42 | 只看该作者
然后设置时钟,仿真的话最好还是用内部时钟,因为后面如果需要串口通信,外部时钟可能会出现一些错误

使用特权

评论回复
10
欢乐家园|  楼主 | 2021-10-26 21:43 | 只看该作者

使用特权

评论回复
11
欢乐家园|  楼主 | 2021-10-26 21:43 | 只看该作者
     其余根据自己习惯即可

使用特权

评论回复
12
欢乐家园|  楼主 | 2021-10-26 21:46 | 只看该作者

使用特权

评论回复
13
欢乐家园|  楼主 | 2021-10-26 21:47 | 只看该作者
然后进入生成的KEIL工程,编写好相应程序即可,主要程序代码在后面给出。
        最后进入Proteus验证。

使用特权

评论回复
14
欢乐家园|  楼主 | 2021-10-26 21:50 | 只看该作者

使用特权

评论回复
15
欢乐家园|  楼主 | 2021-10-26 21:54 | 只看该作者
程序代码
main.c
unsigned char str[]={"hello123"};/**  * [url=home.php?mod=space&uid=247401]@brief[/url]  The application entry point.  * @retval int  */int main(void){  /* MCU Configuration--------------------------------------------------------*/  /* Reset of all peripherals, Initializes the Flash inteRFace and the Systick. */  HAL_Init();  /* USER CODE BEGIN Init */  /* USER CODE END Init */  /* Configure the system clock */  SystemClock_Config();  /* USER CODE BEGIN SysInit */  /* USER CODE END SysInit */  /* Initialize all configured peripherals */  MX_GPIO_Init();  MX_ADC1_Init(); // MX_USART1_UART_Init();  MX_TIM1_Init();  /* USER CODE BEGIN 2 */  /* USER CODE END 2 */  /* Infinite loop */  /* USER CODE BEGIN WHILE */        LCD_INIT();                LCD_WRITE_StrDATA(str,1,0);  while(1)  {    /* USER CODE BEGIN 3 */  }  /* USER CODE END 3 */}


LCD1602.c
void LCD_INIT(void){        //初始化//        HAL_GPIO_Write(GPIOC,0x00ff);        //GPIO_WRITE_u8_data(GPIOC,0x00);        delay_us(500);                LCD_WRITE_CMD( 0x38 );        LCD_WRITE_CMD( 0x0c );        //开启光标和闪烁        LCD_WRITE_CMD( 0x06 );        LCD_WRITE_CMD( 0x01 );  //清屏}void LCD_WRITE_StrDATA(volatile unsigned char *StrData,volatile unsigned char row,volatile unsigned char col ){//写入字符串        unsigned char baseAddr = 0x00;                        //定义8位地址        if (row){                baseAddr = 0xc0;        }else{                baseAddr = 0x80;                                                                                                                                                                           }         //row为1用户选择第二行                //row为0用户选择第一行        baseAddr += col;        while ( *StrData != '\0' ){                LCD_WRITE_CMD( baseAddr );                LCD_WRITE_ByteDATA( *StrData );                        baseAddr++;                           //每次循环地址加一,数据指针加一                StrData++;        }}

使用特权

评论回复
16
nawu| | 2021-11-8 16:19 | 只看该作者
刷新速度最快是多少啊

使用特权

评论回复
17
wiba| | 2021-11-8 16:22 | 只看该作者
用这个工具确实很方便

使用特权

评论回复
18
tfqi| | 2021-11-8 16:23 | 只看该作者
可以进行硬件电路的仿真吗

使用特权

评论回复
19
qcliu| | 2021-11-8 16:25 | 只看该作者
是不是有现成的库啊

使用特权

评论回复
20
kxsi| | 2021-11-8 16:26 | 只看该作者
调试顺利吗

使用特权

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

本版积分规则

102

主题

918

帖子

1

粉丝