归根结底就是对8个IO口的读写问题。你可以自己编写两个函数WriteData()和ReadData();还是分别调用GPIO位操作的函数。
void WriteData(u8 data)
{
//分别操作与液晶连接的IO口,顺序是由高位到低位
GPIO_WriteBit(GPIO号, Pin号,(data & 0x80) >> 7 );
GPIO_WriteBit(GPIO号, Pin号,(data & 0x40) >> 6 );
GPIO_WriteBit(GPIO号, Pin号,(data & 0x20) >> 5 );
GPIO_WriteBit(GPIO号, Pin号,(data & 0x10) >> 4 );
GPIO_WriteBit(GPIO号, Pin号,(data & 0x08) >> 3 ) ;
GPIO_WriteBit(GPIO号, Pin号,(data & 0x04) >> 2 );
GPIO_WriteBit(GPIO号, Pin号,(data & 0x02) >> 1 );
GPIO_WriteBit(GPIO号, Pin号,data & 0x01);
}
u8 ReadData(void)
{
u8 data;
data = GPIO_ReadInputDataBit(GPIO号, Pin号);//8位
data << 1;
data |= GPIO_ReadInputDataBit(GPIO号, Pin号);//7位
data << 1;
data |= GPIO_ReadInputDataBit(GPIO号, Pin号);//6位
data << 1;
data |= GPIO_ReadInputDataBit(GPIO号, Pin号);//5位
data << 1;
data |= GPIO_ReadInputDataBit(GPIO号, Pin号);//4位
data << 1;
data |= GPIO_ReadInputDataBit(GPIO号, Pin号);//3位
data << 1;
data |= GPIO_ReadInputDataBit(GPIO号, Pin号);//2位
data << 1;
data |= GPIO_ReadInputDataBit(GPIO号, Pin号);//1位
return data;
}
有了读和写函数,剩下的就是和液晶控制器的数据交互了。
关键字:STM32 8位IO
引用地址:
STM32 8位IO的操作
推荐阅读最新更新时间:2024-03-16 15:37
STM32的CAN总线中继器设计及应用
引言 CAN总线是一种多主方式的串行通信总线,具有优良的稳定性、实时性、远程通信能力以及超强的硬件CRC纠错等特性;CAN总线技术的应用不再仅限于汽车行业,而是扩展到了机械、纺织、控制等行业,并被公认为是最有前途的现场总线之一。然而由于受制于CAN收发器,CAN总线通信距离和网络中节点数被分别限制在10 km和110个之内。但是在稍大型的CAN总线系统中,这往往是不够的,这时就需要用CAN总线中继器对CAN总线网络进行扩展。 CAN中继器是系统组网的关键技术设备之一,使用中继器可以提高网络设计的灵活性,并且通过中继器还可以连接两个不同波特率的CAN总线网络;在两个网络间进行数据转发,极大地扩展其使用范围。基于此,本文设计出
[单片机]
stm32不同闪存存储器容量启动文件选择说明
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 选择 startup_stm32f10x_ld.s。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 选择 startup_stm32f10x_md.s。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。 选择 startup_stm32f10x_hd.s。 还需要说明的一点是在 MDk安装路径\ARM\Startup\ST\下有一个
[单片机]
【STM32】HAL库 STM32CubeMX教程八---定时器输入捕获
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6/ STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 知识概括: 通过本篇博客您将学到: PWM工作原理 STM32CubeMX创建PWM例程 HAL库定时器PWM函数库 PWM创建呼吸灯 什么是PWM 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非
[单片机]
STM32_DAC输出电压
今天讲解“STM32F103 DAC输出电压”功能。 今天提供并讲解的软件工程,基于软件工程“A0.0.0(STM32F10x_TIM延时)”修改而来。若不知道如何而来,请关注微信公众号“strongerHuang获取更多信息。 每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。 今天的软件工程下载地址(360云盘): https://yunpan.cn/cPU3YIHzcu6Eu 访问密码 11f0 STM32F10x的资料可以在我360云盘下载: https://yunpan.cn/crBUdUGdYKam2 访问密码 ca90 一、RCC时钟配置 该函数位
[单片机]
STM32之CAN---TTCAN模式浅析
1 前言 传统CAN 采用事件触发消息传输机制,CSMA/ CD+ AMP( Carrier-Sense Mult iple Access w ith Co llision Detect ion and Arbit ration on Message Priorit ies, 载波侦听、多路访问、冲突检测、优先级仲裁) 介质访问控制机制, 即多个消息同时发送时, 按照消息标识符的优先级顺序, 低优先级消息自动退出, 高优先级消息继续发送。这种介质访问方式提高了网络的利用率和高优先级消息的实时性, 但在重负载CAN 中, 低优先级消息经常由于总线冲突而被迫退出发送, 导致低优先级消息传输时延长, 且传输时延不可预测, 因
[单片机]
STM32 BH1750光线感应源程序
单片机源程序如下: #include bh1750.h #include delay.h #include timer.h u8 BUF ; u16 temp2=0; float lux=0; void bh1750_iic_init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE ); //使能GPIOB时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;
[单片机]
STM32低功耗唤醒方式
MCU进入低功耗之后,以极低的功耗维持着系统“活着”,但是醒过来是需要一定条件的,比如定个“闹钟”,按键“按一下”等,目前常用的“正常的”唤醒方式有以下几种: 1、RTC定时唤醒; 2、外部中断唤醒(按键或者通讯唤醒); 3、特殊唤醒引脚唤醒(某些引脚具有专门的唤醒功能)。 下面,我们再来看一看如何通过RTC和外部中断唤醒MCU。 1、RTC定时唤醒 依然是从手册中我们可以看到,所有的RTC时间都可以把MCU从低功耗模式中唤醒: 介绍使用RTC的定时功能实现,定时1S唤醒一次,使用cubemx进行对RTC进行配置: 生成代码的时候,勾选这个选项,可以把不用的引脚配置为模拟输入模式,降低功耗: RTC的配置如图,使能RTC,
[单片机]