专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
用STM8S单片机 ADC值变小到一定范围,使LED灯闪烁怎么做?
2019-07-14 19:59
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
5655
13
968
用STM8S
单片机
ADC值变小到一定范围,使LED灯闪烁(不能用while+delays)
LED的引脚(GPIOA, GPIO_PIN_3),求大神程序
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
HARRY007
2019-07-16 13:12
啊小鬼 发表于 2016-12-30 13:38
好的,谢谢
/*******************************************************************************
* 名称: Time4_Init
* 功能: 定时器4初始化
* 形参: 无
* 返回: 无
* 说明: 定时器4用来一个2ms的时间基准
******************************************************************************/
void Time4_Init(void)
{
TIM4_TimeBaseInit(TIM4_PRESCALER_128, 249);//理论定时中断时间8us*250=2MS
TIM4_PrescalerConfig(TIM4_PRESCALER_128, TIM4_PSCRELOADMODE_IMMEDIATE);
TIM4_ARRPreloadConfig(ENABLE);
TIM4_ClearFlag(TIM4_FLAG_UPDATE);
TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
TIM4_Cmd(ENABLE);
}
INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
{//2MS
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
LedDrive(adFlag);
TIM4_ClearITPendingBit(TIM4_IT_UPDATE);
}
void LedDrive(u8 flag)
{
static u8 ledTime = 0;
if( 0 == Flag )
{
ledTime = 0;
GPIO_WriteLow(GPIOD, GPIO_PIN_3);//针对写低灭灯的接法
return;
}
ledTime++;
if( ledTime > 250 )
{
GPIO_WriteReverse(GPIOC, GPIO_PIN_7);//根据具体的灯接口改一下这个
ledTime = 0;
}
}
void main(void)
{
while(1)
{
if(adValue < ADNUM)
adFlag = 1;
else
adFlag = 0;
}
}
复制代码
我直接写的一个,大概意思就是这样的。
加载中...
查看其它13个回答
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
- /*******************************************************************************
- * 名称: Time4_Init
- * 功能: 定时器4初始化
- * 形参: 无
- * 返回: 无
- * 说明: 定时器4用来一个2ms的时间基准
- ******************************************************************************/
- void Time4_Init(void)
- {
- TIM4_TimeBaseInit(TIM4_PRESCALER_128, 249);//理论定时中断时间8us*250=2MS
- TIM4_PrescalerConfig(TIM4_PRESCALER_128, TIM4_PSCRELOADMODE_IMMEDIATE);
- TIM4_ARRPreloadConfig(ENABLE);
- TIM4_ClearFlag(TIM4_FLAG_UPDATE);
- TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);
- TIM4_Cmd(ENABLE);
- }
- INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)
- {//2MS
- /* In order to detect unexpected events during development,
- it is recommended to set a breakpoint on the following instruction.
- */
- LedDrive(adFlag);
- TIM4_ClearITPendingBit(TIM4_IT_UPDATE);
- }
-
- void LedDrive(u8 flag)
- {
- static u8 ledTime = 0;
- if( 0 == Flag )
- {
- ledTime = 0;
- GPIO_WriteLow(GPIOD, GPIO_PIN_3);//针对写低灭灯的接法
- return;
- }
- ledTime++;
- if( ledTime > 250 )
- {
- GPIO_WriteReverse(GPIOC, GPIO_PIN_7);//根据具体的灯接口改一下这个
- ledTime = 0;
- }
- }
- void main(void)
- {
- while(1)
- {
- if(adValue < ADNUM)
- adFlag = 1;
- else
- adFlag = 0;
- }
- }
复制代码我直接写的一个,大概意思就是这样的。
一周热门 更多>