STM32 SPI LCD12864
前言
本文介绍了如果通过软件[STM32CubeMX],对[STM32F401CCU6]芯片进行初始化配置,继而在[Keil MDK-ARM]中进行应用代码的编写。
实现了如下功能:通过SPI接口控制LCD12864显示字符。

1 通过CubeMX创建keil工程
File→New Project→双击选择芯片STM32F401CCUx→工程新建完毕。
左侧System core→RCC→High Speed Clock (HSE)→Crystal/CeramicResonator→外部晶振启用完毕。
顶部Clock Configuration→左侧Input frequency(HSE)根据板子上的外部晶振填写数值,我的是25,一般的是8→界面中间HCLK(MHz)设置数值为最大,我的为84→回车,弹出窗口统统点确定→左侧HSE对应的PLL SourceMux选择HSE(界面会出现红色警示)→再回到界面中间HCLK(MHz)设置数值为最大,我的为84→回车,弹出窗口统统点确定→系统时钟设置完毕
进入主要操作
顶部Pinout & Configuration→Connectivity→SPI1→紧靠的右侧SPI1 Mode and Configuration→Mode选择Full-Duplex Master→下侧Configuration→Parameter Settings→Clock Parameters→Prescaler设置为32
另外把PA9设置为GPIO_Output,用于连接12864的CS使能管脚。
退出主要操作
顶部Project Manager→设定Project Name→设定Toolchain / IDE及可适用的最低版本
左侧Code Generator→Generated files→勾选第一项Generate peripheralinitialization as a pair of ’.c/.h’ files per peripheral
最后点击右上角蓝色按钮GENERATE CODE生成代码,生成完毕后点击Open Project,进入Keil界面。
2 Keil中应用代码的编写
在main.c中Private function prototypes处添加
/* USER CODE BEGIN PFP */
最后在/ USER CODE BEGIN 2 /中调用前面的函数,实现文字的显示
/* USER CODE BEGIN 2 */
3 本文知识点
知识点1 LCD12864的使用步骤
初始化后就可以直接调用LCD_Display_Words函数,来显示文字。
知识点2 HAL库函数的使用
HAL_SPI_Transmit(&hspi1,LCD12864_p,1,10); //通过SPI1发送1字节数据,超时时间为10ms
附录
软件名称 软件版本
STM32CubeMX 5.5.0
MDK-ARM Plus 5.27.1.0
接线:
stm32 12864
PA5(SCK) -- SCLK
PA6(MISO)-- 不接
PA7(MOSI)-- SID
PA9(GPIO) -- CS(RS)
RepRap12864模块的原理图


Github: lcd12864的库文件
因为是刚学Git,以防上面的文件有问题,下面再给出百度云分享。