7、ARM嵌入式系统:LCD/数码管/OLED初始化
一、LCD/数码管模块在板子上的位置
LCD和数码管在板子上都分别有一个插槽。
二、LCD/数码管初始化代码
//SMG init
void SMG_Init()
{
/* PORTB and PORTD clock have already enabled*/
SIM_SCGC5|=SIM_SCGC5_PORTB_MASK+SIM_SCGC5_PORTD_MASK;
/*portB set to GPIO*/
PORTB_PCR0=PORT_PCR_MUX(0X1);
PORTB_PCR1=PORT_PCR_MUX(0X1);
PORTB_PCR2=PORT_PCR_MUX(0X1);
PORTB_PCR8=PORT_PCR_MUX(0X1);
PORTB_PCR9=PORT_PCR_MUX(0X1);
PORTB_PCR10=PORT_PCR_MUX(0X1);
/*portD set to GPIO*/
PORTD_PCR0=PORT_PCR_MUX(0X1);
PORTD_PCR1=PORT_PCR_MUX(0X1);
PORTD_PCR2=PORT_PCR_MUX(0X1);
PORTD_PCR3=PORT_PCR_MUX(0X1);
PORTD_PCR4=PORT_PCR_MUX(0X1);
PORTD_PCR5=PORT_PCR_MUX(0X1);
PORTD_PCR6=PORT_PCR_MUX(0X1);
PORTD_PCR7=PORT_PCR_MUX(0X1);
/*LED control pin set to out*/
GPIOB_PDDR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));
/*LED bit pin set to out*/
// 1 Pin is configured as general-purpose output, for the GPIO function.
// PDDR配置输入或者输出,PDOR配置值
GPIOD_PDDR|=0x000000FF;
/*LED control pin set to high ,LEDs are closed*/
GPIOB_PDOR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));
/*LED bit pin set to low ,LED bit are all lighted,change GPIOC_PDOR register can change the number it shows*/
GPIOD_PDOR=0xAA;
// /*LED control pin set to low ,LEDs are all open*/
GPIOB_PDOR&=~GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));
}
三、初始化过程
LCD/数码管在板子上涉及PORTB和PORTD两个管脚。
step1:使能PORTB和PORTD这两个引脚的时钟
SIM_SCGC5|=SIM_SCGC5_PORTB_MASK+SIM_SCGC5_PORTD_MASK;
step2:PORTB管脚配置给GPIO用
PORTB_PCR0=PORT_PCR_MUX(0X1);
PORTB_PCR1=PORT_PCR_MUX(0X1);
PORTB_PCR2=PORT_PCR_MUX(0X1);
PORTB_PCR8=PORT_PCR_MUX(0X1);
PORTB_PCR9=PORT_PCR_MUX(0X1);
PORTB_PCR10=PORT_PCR_MUX(0X1);
step3:PORTD管脚配置给GPIO用
/*portD set to GPIO*/
PORTD_PCR0=PORT_PCR_MUX(0X1);
PORTD_PCR1=PORT_PCR_MUX(0X1);
PORTD_PCR2=PORT_PCR_MUX(0X1);
PORTD_PCR3=PORT_PCR_MUX(0X1);
PORTD_PCR4=PORT_PCR_MUX(0X1);
PORTD_PCR5=PORT_PCR_MUX(0X1);
PORTD_PCR6=PORT_PCR_MUX(0X1);
PORTD_PCR7=PORT_PCR_MUX(0X1);
step4:PORTB的6个管脚GPIO配置为输出模式
GPIOB_PDDR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));
step5:PORTD的8个管脚GPIO配置为输出模式,即低8个bit设置为1
GPIOD_PDDR|=0x000000FF;
step6:配置PORTB 6个管脚的电平值为1,即关闭LED灯
该寄存器配置每个通用输出管脚上驱动的逻辑电平,将6个管脚的电平值配置为1,即关闭这6个LED灯。
GPIOB_PDOR|=GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));
step7:配置PORTD 8个管脚的电平值
GPIOD_PDOR=0xAA;
0xAA的二进制值为10101010,即引脚0,2,4,6引脚为0,打开这4个引脚的LED灯;1,3,5,7引脚的为1,关闭这4个引脚的LED灯。
step8:配置PORTB的6个引脚,打开6个LED灯
GPIOB_PDOR&=~GPIO_PDDR_PDD(GPIO_PIN(0)|GPIO_PIN(1)|GPIO_PIN(2)|GPIO_PIN(8)|GPIO_PIN(9)|GPIO_PIN(10));
即设置这6个引脚的值为0.
8、ARM嵌入式系统:UART初始化_cyf31的专栏-CSDN博客
7、ARM嵌入式系统:LCD/数码管/OLED初始化相关推荐
- 10、ARM嵌入式系统:加速传感器MMA8451初始化
一.加速传感器在板子上的位置 MMA8451加速传感器经常用于运动检测,实时方向检测,虚拟现实设备中的位置检测等,还比较常见. 二.加速传感器涉及的寄存器 主要涉及PTE24/PTE25管脚对应的寄存 ...
- 9、ARM嵌入式系统:周期中断定时器PIT初始化
一.PIT是什么 PIT即Periodic interrupt timer,周期中断定时器,PIT模块是一组计时器,可用于引发中断和触发DMA信道.PIT主要功能是定时器产生DMA触发脉冲和定时器产生 ...
- 8、ARM嵌入式系统:UART初始化
一.UART概述 百度上UART的定义:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行 ...
- 网络上所谓的《ARM嵌入式系统入门最好的文章》
一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位. 广义的嵌入式无非几种:传统的什么51.AVR.PIC称做嵌入式微控制器:ARM是嵌入式微处理器 ...
- ARM嵌入式系统malloc的实现(C源码)
在ARM嵌入式系统实现malloc内存分配机制. 在ARM cpu上验证通过. ps:也可在pc ubuntu linux进行验证 #include "include/lib_replace ...
- [ARM嵌入式系统开发]第一章之嵌入式系统的软硬件
本章的最后,通过描述ARM为核心的嵌入式系统,来介绍了嵌入式系统的软件和硬件构成和结构.这里根据这部分的介绍以及其他的文章,描述下通用的嵌入式系统的软件和硬件. 首先来说下硬件,书中说,包含有 ...
- 嵌入式:ARM嵌入式系统开发流程概述
文章目录 嵌入式开发的具体过程 开发流程图 嵌入式软件开发环境 交叉开发环境 远程调试结构图 嵌入式应用软件开发的基本流程 软件模拟环境 目标板与评估板 嵌入式软件开发的可移植性和可重用性 嵌入式开发 ...
- 移植tcpdump到ARM嵌入式系统
移植tcpdump到嵌入式系统 tcpdump和libpcap的下载链接:Home | TCPDUMP & LIBPCAP 百度网盘下载链接:https://pan.baidu.com/s/1 ...
- [ARM嵌入式系统开发]第一章之Dhrystone
在书的第一章开头部分,作者提到了"最成功的ARM内核之一ARM7TDMI,具有最高120 Dhrystone MIPS的性能.高的代码密度和低功耗等特性,使它成为移动嵌入式设备的最佳选择&q ...
最新文章
- 在网页中调用本地的应用程序
- Hadoop pipes编程
- IE6-IE11兼容性问题列表及解决办法
- 偶然在网上看到的题目,jQuery功底如何一测便知晓!!!!!!
- gdal java api_Java使用GDAL库
- php.ini 只读,disabled by the php.ini setting phar.readonly
- java四则出题判分_java 随机出题四则运算
- matlab回归分析sst_R语言 | 回归分析(一)
- java数据结构编写二叉树_java 数据结构与算法 BinaryTree二叉树编写
- 2019.1.15 作业
- 【技巧帖】关于Mac如何内录电脑内部声音
- windows xp下 usb驱动编写
- 电阻中联分压电路的计算
- 关于如何关闭Windows错误报告
- 计算机电缆电阻值,一文看懂5个电线电缆电阻检测方法
- 【sketchup 2021】草图大师图像输出与渲染之Enscape渲染(优秀的实时渲染软件)的高级使用【灯光的添加、代理模型的添加、材质编辑器、视频编辑器、全景导出并编辑】
- 使用Audacity制作ACX有声读物 ACX Audiobook Production Using Audacity
- 《Python数据可视化之Matplotlib与Pyecharts》之K线图
- 使用Cytoscape画PPI网络图
- jQuery背景墙聚光灯效果
热门文章
- 【新人入门】HTML——前端纯小白新手入门
- 综述:阿尔茨海默病的神经振荡和脑刺激
- Mysql安装教程,最简单的配置
- 用小白鼠试验毒水问题
- python 多列排序_python sorted多列排序
- hbuilder 上传图片 保存图片 拍照 muse ui
- 智慧医院信息系统集成平台建设方案
- 字符串算法:从入门到劝退
- 钉钉邮箱登录入口_阿里企业邮箱发信失败 报错:554reject by content_「阿里云企业邮箱_阿里企业邮箱」指定经销商热线:400-855...
- CSS3打造磨砂玻璃的背景