你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

最近在做STM8驱动HT1621怎么都点不亮那位高人给指点下

[复制链接]
g05251 提问时间:2015-12-1 22:40 /
  1. #include "ht1621.h"


  2. void gpio_init(void)

  3. {
  4. GPIO_Init(GPIOF, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST);
  5. GPIO_Init(GPIOA, HT1621_CS, GPIO_MODE_OUT_PP_HIGH_FAST);
  6. GPIO_Init(GPIOA, HT1621_WR, GPIO_MODE_OUT_PP_HIGH_FAST);
  7. GPIO_Init(GPIOA, HT1621_DAT, GPIO_MODE_OUT_PP_HIGH_FAST);

  8. }

  9. /********************************************************
  10. 函数名称:void Ht1621_Init(void)
  11. 功能描述: HT1621初始化
  12. 全局变量:无
  13. 参数说明:无
  14. 返回说明:无
  15. 版 本:1.0
  16. 说 明:初始化后,液晶屏所有字段均显示
  17. ********************************************************/
  18. void Ht1621_Init(void)
  19. {
  20.   SET_HT1621_CS();
  21.   SET_HT1621_WR();
  22.   SET_HT1621_DAT();
  23.   Ht1621_delayms(500);  // - - 延时使LCD工作电压稳定
  24.   Ht1621WrCmd(BIAS);
  25.   Ht1621WrCmd(RC256);   // - - 使用内部振荡器
  26.   Ht1621WrCmd(SYSDIS);  // - - 关振系统荡器和LCD偏压发生器
  27.   Ht1621WrCmd(WDTDIS);  // - - 禁止看门狗
  28.   Ht1621WrCmd(SYSEN);   // - - 打开系统振荡器
  29.   Ht1621WrCmd(LCDON);   // - - 打开LCD偏压
  30. }

  31. /******************************************************
  32. 函数名称:void Ht1621Wr_Data(uchar Data,uchar cnt)
  33. 功能描述: HT1621数据写入函数
  34. 全局变量:无
  35. 参数说明:Data为数据,cnt为数据位数
  36. 返回说明:无
  37. 说 明:写数据函数,cnt为传送数据位数,数据传送为低位在前
  38. *******************************************************/
  39. void Ht1621Wr_Data(uint8_t Data,uint8_t cnt)
  40. {
  41.   uint8_t i;
  42.   for (i=0;i<cnt;i++)
  43.   {
  44.      CLR_HT1621_WR();
  45.      Ht1621_delay_10us(1);
  46.      if((Data & 0x80)==0x80)
  47.        {
  48.           SET_HT1621_DAT();

  49.        }
  50.       else
  51.        {
  52.           CLR_HT1621_DAT();

  53.       }
  54.      Ht1621_delay_10us(1);
  55.      SET_HT1621_WR();
  56.      Ht1621_delay_10us(1);
  57.      Data<<=1;
  58.    }
  59. }
  60. /********************************************************
  61. 函数名称:void Ht1621WrCmd(uchar Cmd)
  62. 功能描述: HT1621命令写入函数
  63. 全局变量:无
  64. 参数说明:Cmd为写入命令数据
  65. 返回说明:无
  66. 说 明:写入命令标识位100
  67. ********************************************************/
  68. void Ht1621WrCmd(uint8_t Cmd)
  69. {
  70.   CLR_HT1621_CS();
  71.   Ht1621_delay_10us(1);
  72.   Ht1621Wr_Data(0x80,4);  // - - 写入命令标志100
  73.   Ht1621Wr_Data(Cmd,8);   // - - 写入命令数据
  74.   SET_HT1621_CS();
  75.   Ht1621_delay_10us(1);
  76. }
  77. /********************************************************
  78. 函数名称:void Ht1621WrOneData(uchar Addr,uchar Data)
  79. 功能描述: HT1621在指定地址写入数据函数
  80. 全局变量:无
  81. 参数说明:Addr为写入初始地址,Data为写入数据
  82. 返回说明:无
  83. 说 明:因为HT1621的数据位4位,所以实际写入数据为参数的后4位
  84. ********************************************************/
  85. void Ht1621WrOneData(uint8_t Addr,uint8_t Data)
  86. {
  87.   CLR_HT1621_CS();
  88.   Ht1621Wr_Data(0xa0,3);     // - - 写入数据标志101
  89.   Ht1621Wr_Data(Addr<<2,6);  // - - 写入地址数据
  90.   Ht1621Wr_Data(Data<<4,4);  // - - 写入数据
  91.   SET_HT1621_CS();
  92.   Ht1621_delay_10us(1);
  93. }

  94. /********************************************************
  95. 函数名称:void Ht1621WrAllData(uchar Addr,uchar *p,uchar cnt)
  96. 功能描述: HT1621连续写入方式函数
  97. 全局变量:无
  98. 参数说明:Addr为写入初始地址,*p为连续写入数据指针,
  99.                   cnt为写入数据总数
  100. 返回说明:无
  101. 说 明:HT1621的数据位4位,此处每次数据为8位,写入数据
  102.            总数按8位计算
  103. ********************************************************/
  104. void Ht1621WrAllData(uint8_t Addr,uint8_t *p,uint8_t cnt)
  105. {
  106.   uint8_t i;
  107.   CLR_HT1621_CS();
  108.   Ht1621Wr_Data(0xa0,3);     // - - 写入数据标志101
  109.   Ht1621Wr_Data(Addr<<2,6);  // - - 写入地址数据
  110.   for (i=0;i<cnt;i++)
  111.   {
  112.     Ht1621Wr_Data(*p,8);     // - - 写入数据
  113.     p++;
  114.   }
  115.     SET_HT1621_CS();
  116.   Ht1621_delay_10us(1);
  117. }

  118. void Ht1621_delay_10us(u16 n)  // - - 10微秒的延时子程序
  119. {
  120.   u16 i,j;
  121.   for(i=n;i>0;i--)
  122.     for(j=2;j>0;j--);  
  123. }

  124. void Ht1621_delayms(u16 xms)  // - - 1毫秒延时程序
  125. {
  126.   u16 i,j;  
  127.   for(i = xms;i > 0;i --)  
  128.     for(j = 110;j > 0;j --);  
  129. }  


  130. #include "stm8s.h"
  131. #include "sysclock.h"
  132. #include "ht1621.h"

  133. void main(void)
  134. {
  135.   SystemClock_Init();
  136.   //时钟初始化内部1分频
  137.   u8 i,j,t;
  138.   gpio_init();
  139.   Ht1621_Init();  // - - 上电初始化LCD
  140.   Ht1621_delayms(5000); // - - 延时一段时间
  141.   GPIO_WriteHigh(GPIOF, GPIO_PIN_5);
  142.   uint8_t
  143.   Ht1621Tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  144.                         0x00,0x00,0x00,0x00,0x00};
  145.   
  146.   while(1)
  147.   {
  148.    Ht1621_delayms(2000);
  149.     Ht1621WrAllData(0,Ht1621Tab,16);  // - - 清除1621寄存器数据,暨清屏
  150.     for (i=0;i<32;i++)
  151.     {
  152.       t=0x01;
  153.       for (j=0;j<4;j++)
  154.       {
  155.         Ht1621WrOneData(i,t);
  156.         t<<=1;
  157.         t++;
  158.         GPIO_WriteReverse(GPIOF, GPIO_PIN_5);             // - - 循环点亮LED
  159.         Ht1621_delayms(500);
  160.        }
  161.   
  162.     }
  163.   }
  164. }

  165. #ifdef USE_FULL_ASSERT

  166. /**
  167.   * @brief  Reports the name of the source file and the source line number
  168.   *   where the assert_param error has occurred.
  169.   * @param file: pointer to the source file name
  170.   * @param line: assert_param error line source number
  171.   * @retval : None
  172.   */
  173. void assert_failed(u8* file, u32 line)
  174. {
  175.   /* User can add his own implementation to report the file name and line number,
  176.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  177.   /* Infinite loop */
  178.   while (1)
  179.   {
  180.   }
  181. }
  182. #endif
复制代码
收藏 2 评论3 发布时间:2015-12-1 22:40

举报

3个回答
g05251 回答时间:2015-12-1 22:47:27
程序可以运行的 F口  GPIO_PIN_5 定义的灯也闪烁 真看不懂哪里的原因了 求高人指点
xuguomin 回答时间:2015-12-2 09:15:06
如果有阴极电源不要忘调节
g05251 回答时间:2015-12-2 17:52:37
xuguomin 发表于 2015-12-2 09:15
如果有阴极电源不要忘调节

液晶阴极电源接的固定电阻   麻烦帮我分析下液晶初始化看没有什么问题吧
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版