[匠人手记] 《两轮小车DIY》之《LCD模块》(动态更新)

[复制链接]
 楼主| 程序匠人 发表于 2009-3-18 08:27 | 显示全部楼层

神经啊,做两轮小车用的着汉显吗

两轮车的重点是平衡控制。显示只是为了调试时停供一些信息。以后做好了连这个1602都是多余。<br /><br />技术够用即好,不是拿来炫耀的。欧耶!
xwj 发表于 2009-3-18 08:37 | 显示全部楼层

神经啊,汉显几块钱就能实现,1602要20,大家说谁是神经啊

  
 楼主| 程序匠人 发表于 2009-3-18 08:58 | 显示全部楼层

神经啊,汉显俺要去买,1602俺有现成的,大家说谁是神经啊

  
xwj 发表于 2009-3-18 08:59 | 显示全部楼层

呵呵,当然是匠人神经

^_^<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| 程序匠人 发表于 2009-3-18 09:01 | 显示全部楼层

晕,理屈词穷啦。。。。

  
xwj 发表于 2009-3-18 09:05 | 显示全部楼层

只有神经才以为别人都是神经啊,你开口就是神经,你不神经

  
 楼主| 程序匠人 发表于 2009-3-18 09:08 | 显示全部楼层

老x不会生气了吧,匠人跟你熟才这么说的

道歉。。。。。。。。。。。。。。。。。。。。。。
xwj 发表于 2009-3-18 09:15 | 显示全部楼层

哈哈,老x才不生气呢,老x也是因为跟你熟才这么说的:-)

<br /><br /><br /><br />小小声的说:<br />老x是在故意强词夺理呢,<br />嘎嘎嘎嘎...
 楼主| 程序匠人 发表于 2009-3-18 09:21 | 显示全部楼层

嘎嘎嘎嘎...

  
computer00 发表于 2009-3-18 09:38 | 显示全部楼层

圈圈对你们两个表示无语...

  
 楼主| 程序匠人 发表于 2009-3-18 10:58 | 显示全部楼层

我们两个对圈圈的签名表示无语。。。。。

哈哈
huangqi412 发表于 2009-3-18 15:47 | 显示全部楼层

晕,两个人一个劲嘎嘎,两只神经鸭子夜里乱叫,哈哈哈哈

嘎嘎完了冒出蛋蛋(COMPUTER00),,,一人下一个蛋...哈哈&nbsp;&nbsp;原来鸭子和**相反,是先嘎嘎然后生蛋的,,,哈哈哈哈哈哈哈哈哈
xwj 发表于 2009-3-18 16:45 | 显示全部楼层

哈哈,总比LS的鸭子半夜想mm想得睡不着觉 好啊...

做人就要做的光明正大啊,发了帖又删掉算什么男人啊???<br /><br /> <br /> 相关链接:<a href='https://bbs.21ic.com/club/bbs/list.asp?boardid=17&page=1&t=3267948&tp=...'>https://bbs.21ic.com/club/bbs/list.asp?boardid=17&page=1&t=3267948&tp=...</a>
huangqi412 发表于 2009-3-18 18:33 | 显示全部楼层

汗 ,LS同学被拍砖头就搞人身诽谤攻击了... 555......

  
xwj 发表于 2009-3-18 20:45 | 显示全部楼层

汗 ,证据确凿,还想抵赖。

  
kbgyzp 发表于 2009-3-19 20:45 | 显示全部楼层

匠人,我想看看你的SysTick_Delay()这个函数的内容

以前在网上看过在系统滴答中用的这种延时函数,感觉有漏洞,想看看高手的者的函数。<br /><br />如果有好几个地方调用这个延时函数,还准吗?
 楼主| 程序匠人 发表于 2009-3-19 21:16 | 显示全部楼层

好几个地方调用这个延时函数,当然不行啦

  
 楼主| 程序匠人 发表于 2009-3-19 21:18 | 显示全部楼层

Delay_ms.c —— ms级延时模块(基于SysTick)

//--------------------------------------------------------<br />//&nbsp;项目:通用<br />//&nbsp;模块:ms级延时模块(基于SysTick)<br />//&nbsp;说明:<br />//&nbsp;设计:程序匠人(版权所有,引用者请保留原作者姓名)<br />//--------------------------------------------------------<br />/*<br />版本说明:<br />Delay_ms.c&nbsp;&nbsp;&nbsp;&nbsp;2009-3-11&nbsp;21:12:30<br /><br /><br />*/<br />//--------------------------------------------------------<br />//本模块使用步骤:<br />//--------------------------------------------------------<br />/*<br />步骤1.把本文件&quot;Delay_ms.c&quot;插入项目中<br />步骤2.把&quot;stm32f10x_systick.c&quot;库文件插入项目中<br />步骤3.修改系统文件&quot;stm32f10x_conf.h&quot;,使能下面这句:<br />&nbsp;&nbsp;#define&nbsp;_SysTick<br />步骤4.在&quot;common.h&quot;文件尾,插入&quot;Delay_ms.h&quot;头文件,如下:<br />&nbsp;&nbsp;#include&nbsp;&quot;Delay_ms.h&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//ms级延时模块(基于SysTick)&nbsp;头文件<br />步骤5.在&quot;stm32f10x_it.c&quot;文件及所有需要调用延时函数的c文件起始处,添加下面这句:&nbsp;<br />&nbsp;&nbsp;#include&nbsp;&nbsp;&quot;common.h&quot;<br />步骤6.在&quot;main()&quot;函数初始化段中,调用&quot;SysTick_Configuration()&quot;,执行SysTick初始化设置.<br />步骤7.打开&quot;stm32f10x_it.c&quot;文件,在&quot;SysTickHandler()&quot;中断函数中,调用&quot;TimingDelay_Decrement()&quot;函数.如下:<br />&nbsp;&nbsp;void&nbsp;SysTickHandler(void)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;TimingDelay_Decrement();&nbsp;&nbsp;//TimingDelay递减函数<br />&nbsp;&nbsp;}<br />步骤8.应用代码示例:<br />&nbsp;&nbsp;SysTick_Delay(300);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;延时&nbsp;300ms<br /><br />*/<br />//--------------------------------------------------------<br />//插入文件包<br />//--------------------------------------------------------<br />#include&nbsp;&nbsp;&quot;common.h&quot;<br />//--------------------------------------------------------<br /><br /><br />//--------------------------------------------------------<br />//SysTick初始化设置<br />//说明:&nbsp;本函数由&quot;main()&quot;函数初始化段调用<br />//--------------------------------------------------------<br />void&nbsp;SysTick_Configuration(void)<br />{<br />&nbsp;&nbsp;SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);&nbsp;&nbsp;&nbsp;//配置SysTick的时钟源=为AHB(系统时钟)的1/8<br />&nbsp;&nbsp;SysTick_SetReload(9000);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置SysTick的重载值=9000.当系统时钟=72MHz,中断频率=1000Hz(周期1ms)<br />&nbsp;&nbsp;SysTick_ITConfig(ENABLE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使能SysTick中断<br />}<br /><br />//--------------------------------------------------------<br />//TimingDelay递减函数<br />//说明:&nbsp;本函数由&quot;SysTickHandler()&quot;中断调用<br />//--------------------------------------------------------<br />void&nbsp;TimingDelay_Decrement(void)<br />{<br />&nbsp;&nbsp;if&nbsp;(TimingDelay&nbsp;!=&nbsp;0x00)&nbsp;TimingDelay--;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TimingDelay不为0,则递减<br />}&nbsp;<br /><br />//--------------------------------------------------------<br />//延时函数<br />//入口:&nbsp;nTime=延时时间(单位=ms)<br />//--------------------------------------------------------<br />void&nbsp;SysTick_Delay(u32&nbsp;nTime)<br />{<br />&nbsp;&nbsp;SysTick_CounterCmd(SysTick_Counter_Enable);&nbsp;&nbsp;&nbsp;//使能SysTick计数器<br />&nbsp;&nbsp;TimingDelay&nbsp;=&nbsp;nTime;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读取延时时间<br />&nbsp;&nbsp;while(TimingDelay&nbsp;!=&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断延时是否结束<br />&nbsp;&nbsp;SysTick_CounterCmd(SysTick_Counter_Disable);&nbsp;&nbsp;//关闭SysTick计数器<br />&nbsp;&nbsp;SysTick_CounterCmd(SysTick_Counter_Clear);&nbsp;&nbsp;&nbsp;&nbsp;//清除SysTick计数器<br />}<br /><br />//--------------------------------------------------------<br />//延时启动函数<br />//说明:&nbsp;&nbsp;&nbsp;&nbsp;本函数与SysTick_Delay_Check()配对使用<br />//入口:&nbsp;nTime=延时时间(单位=ms)<br />//--------------------------------------------------------<br />void&nbsp;SysTick_Delay_Start(u32&nbsp;nTime)<br />{<br />&nbsp;&nbsp;SysTick_CounterCmd(SysTick_Counter_Enable);&nbsp;&nbsp;&nbsp;//使能SysTick计数器<br />&nbsp;&nbsp;TimingDelay&nbsp;=&nbsp;nTime;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读取延时时间<br />}<br /><br />//--------------------------------------------------------<br />//延时结束判断函数<br />//说明:&nbsp;&nbsp;&nbsp;&nbsp;本函数与SysTick_Delay_Start()配对使用<br />//出口:&nbsp;如果延时结束,关闭SysTick,并返回1;否则不关闭SysTick,并返回0<br />//--------------------------------------------------------<br />u8&nbsp;SysTick_Delay_Check(void)<br />{<br />&nbsp;&nbsp;u8&nbsp;i&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(TimingDelay&nbsp;==&nbsp;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//判断,如果延时是否结束<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysTick_CounterCmd(SysTick_Counter_Disable);&nbsp;&nbsp;//关闭SysTick计数器<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SysTick_CounterCmd(SysTick_Counter_Clear);&nbsp;&nbsp;&nbsp;&nbsp;//清除SysTick计数器<br />&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//如果延时未结束<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return&nbsp;i;<br />}<br /><br />//--------------------------------------------------------<br />//<br />//&nbsp;&nbsp;THE&nbsp;END<br />//<br />//&nbsp;&nbsp;版权所有:程序匠人(引用者请保留原作者姓名)<br />//<br />//--------------------------------------------------------<br /><br />
 楼主| 程序匠人 发表于 2009-3-19 21:19 | 显示全部楼层

Delay_ms.h

//--------------------------------------------------------<br />//&nbsp;项目:通用<br />//&nbsp;模块:ms级延时模块(基于SysTick)<br />//&nbsp;说明:<br />//&nbsp;设计:程序匠人(版权所有,引用者请保留原作者姓名)<br />//--------------------------------------------------------<br />/*<br />版本说明:<br />Delay_ms.h&nbsp;&nbsp;&nbsp;&nbsp;2009-3-11&nbsp;22:18:40<br /><br /><br />*/<br />//--------------------------------------------------------<br />//变量定义<br />//--------------------------------------------------------<br />EXT_&nbsp;vu32&nbsp;TimingDelay;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//延时计数器<br /><br />//--------------------------------------------------------<br />//函数声明<br />//--------------------------------------------------------<br />extern&nbsp;void&nbsp;SysTick_Configuration(void)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SysTick初始化设置(由&quot;main()&quot;函数初始化段调用)<br />extern&nbsp;void&nbsp;TimingDelay_Decrement(void)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TimingDelay递减函数(由&quot;SysTickHandler()&quot;中断调用)<br />extern&nbsp;void&nbsp;SysTick_Delay(u32&nbsp;nTime)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//延时函数(入口:nTime=延时时间(单位=ms))<br /><br />extern&nbsp;void&nbsp;SysTick_Delay_Start(u32&nbsp;nTime);&nbsp;&nbsp;&nbsp;&nbsp;//延时启动函数(入口:nTime=延时时间(单位=ms))<br />extern&nbsp;u8&nbsp;SysTick_Delay_Check(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//延时结束判断函数()出口:&nbsp;如果延时结束,关闭SysTick,并返回1;否则不关闭SysTick,并返回0<br /><br /><br /><br /><br />//--------------------------------------------------------<br />//<br />//&nbsp;&nbsp;THE&nbsp;END<br />//<br />//&nbsp;&nbsp;版权所有:程序匠人(引用者请保留原作者姓名)<br />//<br />//--------------------------------------------------------<br /><br />
hotpower 发表于 2009-3-19 21:29 | 显示全部楼层

不错~~~不过H头文件要构成“桥”才更便捷~~~

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部