当前位置: 首页 > news >正文

江西省城乡建设培训网 官方网站今日头条热点新闻

江西省城乡建设培训网 官方网站,今日头条热点新闻,做旅游网站的意义,潍坊最近最新消息之前一直想用hpdl1414画一块手表,前面pcb测试板画完没空调试,最近刚好空出来时间,遂发下驱动。 这里简单赘述hpdl1414的驱动原理:D0-D6负责数据输入(ascii表后7位),A0,A1负责更改hpdl1414模块显…

之前一直想用hpdl1414画一块手表,前面pcb测试板画完没空调试,最近刚好空出来时间,遂发下驱动。

这里简单赘述hpdl1414的驱动原理:D0-D6负责数据输入(ascii表后7位),A0,A1负责更改hpdl1414模块显示的位数,wr负责控制是否写入数据。

下图为pcb接线(d4忘记画了,用pb7来)

hpdl1414.h

#ifndef HPDL1414_H
#define HPDL1414_H#include "stm32l0xx_hal.h"// 数据引脚定义
#define D0_H  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET)
#define D0_L  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET)
#define D1_H  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_SET)
#define D1_L  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET)
#define D2_H  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET)
#define D2_L  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET)
#define D3_H  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_SET)
#define D3_L  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, GPIO_PIN_RESET)
#define D4_H  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET)
#define D4_L  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET)
#define D5_H  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET)
#define D5_L  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET)
#define D6_H  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET)
#define D6_L  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET)// 控制引脚定义
#define WR1_H  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_SET)  // 前4位
#define WR1_L  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6, GPIO_PIN_RESET)
#define WR2_H  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET)  // 后4位
#define WR2_L  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET)
#define A0_H   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET)
#define A0_L   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET)
#define A1_H   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET)
#define A1_L   HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET)// 函数声明
void hpdl1414_init(void);
void hpdl1414_write_dual_char(uint8_t position, char c);
void hpdl1414_display_string(const char *str);  // 修复未定义错误
void hpdl1414_display_8digit_string(const char *str);#endif // HPDL1414_H

hpdl1414.c

#include "hpdl.h"
#include <string.h>// 微秒延时函数
static void delay_us(uint16_t us) {while (us--) {__NOP(); __NOP(); __NOP(); __NOP();}
}// 设置数据引脚
static void set_data_pins(uint8_t data) {(data & 0x01) ? D0_H : D0_L;(data & 0x02) ? D1_H : D1_L;(data & 0x04) ? D2_H : D2_L;(data & 0x08) ? D3_H : D3_L;(data & 0x10) ? D4_H : D4_L;(data & 0x20) ? D5_H : D5_L;(data & 0x40) ? D6_H : D6_L;
}// 设置地址引脚
static void set_address(uint8_t addr) {(addr & 0x01) ? A0_H : A0_L;(addr & 0x02) ? A1_H : A1_L;
}// 初始化函数
void hpdl1414_init(void) {WR1_H; WR2_H;  // 禁用写入A0_L; A1_L;    // 地址归零D0_L; D1_L; D2_L; D3_L; D4_L; D5_L; D6_L;  // 数据引脚置低
}// 写入单个字符到指定位置(0-7)
void hpdl1414_write_dual_char(uint8_t position, char c) {uint8_t physical_pos;if (position < 4) {// 前4位(WR1控制)修正地址顺序:0→3, 1→2, 2→1, 3→0physical_pos = 3 - position;  // 关键修改:反向映射set_address(physical_pos);set_data_pins(c);WR1_L; delay_us(1); WR1_H;} else if (position < 8) {// 后4位(WR2控制)同样修正地址顺序physical_pos = 7 - position;  // 关键修改:反向映射set_address(physical_pos);set_data_pins(c);WR2_L; delay_us(1); WR2_H;}
}// 显示4位字符串(兼容旧代码)
void hpdl1414_display_string(const char *str) {uint8_t len = strlen(str);if (len > 4) len = 4;for (uint8_t i = 0; i < len; i++) {hpdl1414_write_dual_char(i, str[i]);}for (uint8_t i = len; i < 4; i++) {hpdl1414_write_dual_char(i, ' ');}
}// 显示8位字符串
void hpdl1414_display_8digit_string(const char *str) {uint8_t len = strlen(str);if (len > 8) len = 8;for (uint8_t i = 0; i < len; i++) {hpdl1414_write_dual_char(i, str[i]);}for (uint8_t i = len; i < 8; i++) {hpdl1414_write_dual_char(i, ' ');}
}

main.c(部分)

    hpdl1414_init();// 显示"1234"hpdl1414_display_string("1234");uint8_t i =0;/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){hpdl1414_display_8digit_string("12345678");//hpdl1414_display_8digit_string(" DESSSQ ");//hpdl1414_display_8digit_string("ILOVEYOU");/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

最后附上驱动成功图片

http://www.hyszgw.com/news/683.html

相关文章:

  • 企业网站建设怎么选择空间提高seo排名
  • 电商工作计划怎么写seo关键词排名优化的方法
  • 酒店网站建设方案书网站服务器失去响应
  • 建筑工程网络组网百度seo还有前景吗
  • 深圳 建网站百度正版下载并安装
  • 网站微信公众号链接怎么做免费cms建站系统
  • 网站建设总结与体会免费加客源软件
  • 肥西做网站制作网站公司
  • 企业网站关站2023国内外重大新闻事件10条
  • 成都网站建设小程序seo机构
  • wordpress提示更新英文吧惠州seo按天付费
  • 兼职网站开发团队工作项目总结2022最新免费的推广引流软件
  • 辽阳专业建设网站公司电话号码5188关键词挖掘工具
  • 北京电信备案网站百度帐号管家
  • 学跨境电商要多少钱湖北seo整站优化
  • 网站前台语言色盲测试图动物
  • wordpress更换模板seo好找工作吗
  • 优秀旅游网站设计百度推广首次开户需要多少钱
  • 成都网站建设 致尚广告公司业务推广
  • 池州有哪些做网站的排名前十的大学
  • 网站内容与目录结构口碑营销的特征
  • 做英文网站賺钱杭州网络
  • 做嫒嫒网站广州疫情今天最新消息
  • 辽宁建设厅查询网站百度搜索引擎优化的方法
  • 湖北省住房部城乡建设厅网站首页网站网络推广公司
  • 网络调查问卷怎么制作西安seo高手
  • 深圳做品牌网站windows优化大师官方下载
  • b2b网站建设注意事项网络营销策略存在的问题
  • 网站建设维护 天博网络app推广软件
  • 用ae做模板下载网站seo外包公司排名