使用STM32 CubeIDE建立工程,串行连接单色OCMJ4X8C-14 128*64屏幕

一直使用MDK和IAR做STM32 的开发工作,不过也一直关注网上对于免费IDE的推广,想体验一下使用st官方开发工具的便捷性。

正好用最近用手头的一个简易开发板连接一个液晶小屏幕测试一下。测试过程中本着尽量使用默认设置,不做过多的个性化修改。

建立和配置工程

对于软件的安装不再赘述,直接从建立工程说起。

  1. 首先新建一个STM32 Project,选择开发板对应的单片机型号,我选择的是STM32F103R8.然后点击下一步,设置工程名称,其他默认选择,然后点击完成。
  2. 自动打开对单片机Pin设置的图形界面,非常直观

    根据硬件的手册设置所需的GPIO,我连接的串口液晶屏需要5个IO,又根据开发板上面的一个LED增加了一个LED的控制IO。
  3. 然后再点击RCC选项,配置使用的晶振类型,
  4. 选择SYS,选择Debug的模式,我使用的是STlink V2,这里选择 Serial Wire。
  5. 时钟源等其他都使用默认设置,然后点击保存,开始自动生成代码。

编辑代码

初次使用CubeIDE,感觉自动生成的代码非常繁琐,仔细研究后,发现许多注释都有其含义。必须要把自己定义的变量和宏定义等放到其指定的位置,

否则再次使用图形界面修改配置,自动生成代码会覆盖自己的代码。

系统已经自动生成了 系统初始化函数SystemClock_Config();和IO初始化的函数MX_GPIO_Init();。

在main.h里面可以看到刚在定义的GPIO。可以直接使用这些宏定义。

另外系统也自动开启了1ms的sytick定时器。在stm32f1xx_it.c 文件里面找到 void SysTick_Handler(void) 中断服务函数,可以直接使用其作为定时基准。

直接Ctrl+B,顺利编译通过。CubeIDE界面的使用方法,可以百度到一堆。

连接硬件

由于手头的这个液晶模块之前一直按照并行使用,拿来做实验不想飞太多线,于是想使用串行方式连接。根据其背部的型号OCMJ4X8C-14,搜索到厂家的网站,下载手册。发现手册里面的代码时asm汇编格式。于是又上官网找到售后的微信,索取了c例程。厂家的技术支持还是非常不错的,点赞。

把厂家的代码复制粘贴后,发现不能显示,首先想到的是否是程序中的延时不匹配造成的。于是反复修改延时,依然无效。于是开始检查硬件,发现串行并行选择IO的电平一直为并行模式。

断电开始研究,发现此引脚在液晶上已经强制拉高了。悲催啊!于是看液晶背面有没有0欧电阻之类的跳线,结果没有发现。失望的时候,发现有两个很小的字母,P和S,这不就是并行和串行的缩写吗,这里正好是一个焊锡跳线。于是断定这里便是串并选择硬跳线。

修改跳线之后,上电,久违的画面出现了,可是汉字全是乱码,英文和数字正常。这下又乱了阵脚,联系技术支持,提示是否和延时有关。聊天的时候突然想起这种情况好像在哪里见过。

平时使用不同的编辑器打开代码,有时候汉字也是乱码,和中文编码有关。现在的这种情况是否也是也编码有关呢。现在CubeIDE默认使用的UTF-8编码,于是选择编辑,编码,修改编码为 GB18030.

再重新编写显示的汉字 数组。编译,下载,终于正常了。

总结

经过上面的实验,在使用CubeIDE中本着尽量使用官方默认设置的理念。要注意下面的几点。

  1. GPIO需要设置user label ,才可以在源代码中直接使用其宏定义,更方便。
  2. SYS中需要选择Debug的模式,否则只能下载,仿真的时候会提示出错。
  3. 自己增加的变量等,一定要遵循代码中的注释,放在系统规定的地方,否则再次执行自动生成代码,会被覆盖。

 


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值