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

最近在做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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版