当前位置:首页 > 单片机 > 单片机
[导读]实物焊接及对应驱动程序全部调试完成,视屏地址为:自制蓝牙灯操作视屏网络地址:http://v.youku.com/v_show/id_XMjk0ODk1MjUyMA==.html;实物图01为:实物图02为:---------------对程序代码均使用“函数分割”形式

实物焊接及对应驱动程序全部调试完成,视屏地址为:自制蓝牙灯操作视屏

网络地址:http://v.youku.com/v_show/id_XMjk0ODk1MjUyMA==.html;

实物图01为:



实物图02为:



---------------

对程序代码均使用“函数分割”形式实现,并添加“适当注释”,这种代码编写方式在初期编写时,会很繁琐,因为其将本可使用“1个函数”实现的代码分割为“2个或2个以上”的“函数”,但在后期维护或是别人接手你的“代码”时,会大大缩短所需时间;

在实际工作中,个人建议,所有东西留2份,若你是个好人,请直接忽略“02”所说内容!!!:

01、第一份:带详细内容注释、问题注释、注意事项等内容,可以让你即时过1年以后,也能在10分钟内把握到核心脉络;

02、第二份:删除主要的内容注释、问题注释、注意事项等内容,让后面的工作变得繁琐一些;好心点的能做到“不留BUG”,这个可以适时考虑;次一点的,会留很多“后窗”,这个相当不推荐;

由于“代码”自由度太高,编写代码的方式也千变万化,所以没有统一的强制规范,到现在为止,也只是有部分所谓的“编程标准”而已,至于“遵守或不遵守”,这就是“个人问题”了;

坊间有句话:“最烦被人写注释,更烦别人不写注释”,这种说法“懂的人自然懂”,就不赘述了;


一下是本人从工程中截取的一些函数,其中:

01、“主函数”只做“按键检测”;

02、“蓝牙”使用“USART中断”执行,保证“实时性”;

03、使用“TIM4”控制“小功率LED灯”进行“0.5m/次”亮灭闪烁,用于指示“程序是否正在运行”;

程序架构及写法均为个人见解,高手见谅:

01、主函数只做“按键检测”为:

int main(void)

{

// 临时变量,为程序后续运行方便而定义

uint8_t i = 0;

uint8_t key_value = 0;

uint8_t key01_num = 0,key02_num = 0,key03_num = 0;

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

Led_GPIO_Init();

Relay_GPIO_Init();

Relay_Left_ALL_OFF();

Relay_Right_ALL_OFF();

Key_Init_No_Interrupt_Func();

USART1_Init();//"USART1"初始化函数

__enable_interrupt();

TIM4_Init();

Relay_Left_ALL_OFF();

Relay_Right_ALL_OFF();

while (1)

{

key_value = Key_Get_Value_No_Interrupt_Func(1);

if(0 != key_value)

{

switch(key_value)

{

case 1:

{

key_value = 0;

key01_num++;

if(4 == key01_num)

{

key01_num = 0;

}

Relay_Right_Single_ON(key01_num);

break;

}

case 2:

{

key_value = 0;

key02_num++;

if(4 == key02_num)

{

key02_num = 0;

}

Relay_Left_Single_ON(key02_num);

break;

}

case 3:

{

key_value = 0;

key03_num++;

if(key03_num >= 12)

{

key03_num = 0;

}

if((key03_num%2))

{

Relay_Left_ALL_OFF();

Relay_Right_ALL_OFF();

}

else

{

Relay_Left_ALL_ON();

Relay_Right_ALL_ON();

}

break;

}

default:

{

break;

}

}

}

}

return 0;

}

02、“USART中断响应函数”,响应函数位于“stm8s_it.c”中:

i)、“串口初始化”函数:

void USART1_Init(void)

{

//初始化"USART1"

UART1_Init((u32)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,

UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);

//开启"USART1"接收中断

UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);

//启动"USART1"

UART1_Cmd(ENABLE);

}

ii)、“串口响应函数”:

INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)

{

uint8_t temp_rec;

temp_rec = UART1_ReceiveData8();

USART1_RX_Date_uint8_t = temp_rec;//=========================

//USART1_Flag = 1;

Relay_Left_Right_USART1_Action(USART1_RX_Date_uint8_t);//=========================

UART1_ClearITPendingBit(UART1_IT_RXNE);//清"中断"

UART1_SendData8(temp_rec);

while((UART1_GetFlagStatus(UART1_FLAG_TXE)) == RESET);//等待发送数据完成

}

03、“TIM4”函数,响应函数位于“stm8s_it.c”中::

i)、“TIM4初始化函数”:

void TIM4_Init(void)

{

TIM4_TimeBaseInit(TIM4_PRESCALER_128, 0xFF); //初始化,"分频"、"初始值"

TIM4_ClearFlag(TIM4_FLAG_UPDATE); //清"标志"

TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE); //配置"中断设置"

TIM4_Cmd(ENABLE); //开启"定时器TIM4"

}

ii)、“TIM4响应函数”:

INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)

{

cnt_tim4++;

if(cnt_tim4==480)

{

Led_Triggle();

cnt_tim4=0;

}

TIM4_ClearITPendingBit(TIM4_IT_UPDATE);//清"中断"

}

只要借助以上几个主要函数,再结合“GPIO”控制“Relay驱动电路”就可以直接控制“功率LED灯”的有效动作;

Note:实际使用时,可以将“功率LED灯”换为其他“驱动器件”,进而控制“市电”或“其他用电器”的有效工作,实现简单的“智能家居控制”,但此时“电压过高”,“危险性很大”,有需要,还是找专业人士更为可靠,切忌“胡乱尝试”;


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭