简介:这个是这个蓝牙小车的主程序,单片机用的是stm8,希望对广大爱好智能车的朋友所帮助。
#include "iostm8s103k3.h"
#include "stm8s_uart1.h"
#include "stm8s.h"
void UART1_init(void);
unsigned char c;
void TIM2_Configuration_set(void)
{
TIM2_DeInit();//reset
TIM2_TimeBaseInit(TIM2_PRESCALER_8, 65535);//预分频8,自动重载值为1000
TIM2_SetCounter(100);//设置计时器初值为1000,以产生更新事件 TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);//开定时器中断 TIM2_Cmd(ENABLE);//计时器打开 }
void GPIO_Init_s(void)
{
GPIO_Init(GPIOB, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_6|GPIO_PIN_7,
GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(GPIOA, GPIO_PIN_LNIB, GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(GPIOD, GPIO_PIN_5, GPIO_MODE_OUT_PP_HIGH_FAST); GPIO_Init(GPIOD, GPIO_PIN_6, GPIO_MODE_IN_PU_NO_IT);
}
void main()
{
disableInterrupts();
CLK_SWR=0XB4; //将HSE置为主时钟源
while(!(CLK_SWCR&0X08));//判断目标时钟源是否准备就绪 CLK_SWCR|=0X02; //=CLK_SWCR|0X02 while(CLK_SWCR&0X01) ; //判断时钟切换是否完成
UART1_init();
GPIO_Init_s();
enableInterrupts();
TIM2_Configuration_set();
while (1) {
while (!(UART1_SR & 0x20));//Loop until the UART1 Receive Data Register is not empty
c= UART1_DR;
}
}
void UART1_init(void)
{
UART1_CR1 = 0x00;//一个起始位,8个数据位.n个停止位 UART1_CR3= 0x00;//一个停止位
UART1_BRR2 = 0x00;//波特率9600
UART1_BRR1 = 0x68;
UART1_CR2= 0x04;//接收使能
}
#pragma vector=UART1_R_RXNE_vector __interruptvoid UART1_RX(void) { c = UART1_DR; // 接收到数据了 while(!UART1_SR_TXE);
}
#pragma vector=15 //TIM2的外部中断向量号是13,加上两个不可屏蔽中断是15__interrupt
void TIM2_IRQ(void)
{
//判断接受到的数据,然后小车运动
if(c==0x44)GPIO_WriteLow(GPIOA, GPIO_PIN_2); GPIO_WriteHigh(GPIOA, GPIO_PIN_1);
if(c==0x88) PB_ODR=0x88;
if(c==0x40) PB_ODR=0x40;
if(c==0x04) PB_ODR=0x04;
if(c==0x00) PB_ODR=0x00;
TIM2_SetCounter(100);//重新赋初值 TIM2_ClearITPendingBit(TIM2_IT_UPDATE); //清中断标志位
} //程序参数纠错
#ifdef USE_FULL_ASSERT
void assert_failed(u8*file,u32 line)
{
while(1)
{
}
}
#endif
上一篇:IAR下STM8S207单片机各模块的无库例程
下一篇:电磁炉中电容式触控的原理
推荐阅读最新更新时间:2024-11-08 13:21
设计资源 培训 开发板 精华推荐
- AM2S-1203SZ 3.3V 2瓦直流转直流转换器的典型应用
- AD605-EB,使用 AD605 低噪声、精确、双通道、dB 线性可变增益放大器的评估板
- 使用具有最大功率点跟踪功能的 LTC4162EUFD-LAD 太阳能供电 36 节 3.2A 充电器的典型应用
- 使用 MaxLinear, Inc 的 SPX2930 的参考设计
- 具有 5V 输出的 LT1074CT 正负转换器的典型应用
- NLSF595 串行 (SPI) 三色 LED 驱动器的典型应用电路
- 双路输出 150/300 mA 低压差稳压器的典型应用
- 51MiniSystem
- 【已实测】LT1963可调电源验证板
- 使用 ROHM Semiconductor 的 BD5223 的参考设计