刘刘大顺智能车学习历程
认识
中断
中断:中断是指单片机在运行别的代码是,系统可以通过中断方式打断连续的运行,先运行中断服务函数,开中断就是指系统可以在连续运行是中断,去运行中断服务函数,关中断就是指关闭系统中断,不允许系统打断连续的运行。
单片机的中断是一种非常有用的设置。我们在编写程序时都会在中断程序内设置一些简单的操作,比如对键盘的扫描程序、传感器返回数据读取程序等等。而且大多数中断都是有固定触发条件和时间的,我们可以利用这些进入中断的特定时间完成很多特定的事件。比如有1Hz的中断,还有2Hz的中断等等~~
当我们在程序里面设置成将所有中断打开,那么这个单片机的所有类型的中断都会在这个它特有的时间和条件下,进入它自己的中断程序去执行工作。如果我们关中断,那么所有类型的中断不论什么条件和时间都不会进入它自己的中断程序去执行工作了。很多单片机的中断是可以有区别的选择开关中断,而且可以有些开有些关闭。
提醒一下,在中断执行程序里面一定要把堆栈设置好哦,瑶及时保护各个常用寄存器内的数据,不然出了中断后的数据就乱套了~~
/*!
* @brief main函数
* @since v50
* @note 山.外摄像头 LCD 测试实验
*/
void main(void)
{
DisableInterrupts; //关闭总中断
PLL_Init(PLL200); //初始化PLL为200M,总线为100MHZ 决定单片机处理速度
camera_init(imgbuff); //摄像头初始化
UART_Init(UART_4,115200); //蓝牙或串口初始化
FTM_PWM_Init(FTM3,FTM_CH1,312,250);//PTE8 //电机1-A
GPIO_Init(PTE,8,GPO,1);
FTM_PWM_Init(FTM3,FTM_CH5,312,250);//PTE12 //电机2-A
GPIO_Init(PTE,12,GPO,1);
FTM_PWM_Init(FTM0 ,FTM_CH1,62500,duty);//PTC2 50000-125HZ
EnableInterrupts;
while(1)
{
camera_get_img(); //摄像头获取图像
find_line();
SendPicture();//调试时 一定要注释这一行!!!
}
}
void SendPicture(void)
{
int i=0,j=0;
UART_Put_Char(UART_4,0x01);
UART_Put_Char(UART_4,0xFE);
for(i=0;i<OV7725_EAGLE_H;i++)
{
for(j=0;j<OV7725_EAGLE_W;j++)
{
UART_Put_Char(UART_4,Image_data[i][j]);
}
}
UART_Put_Char(UART_4,0xFE);
UART_Put_Char(UART_4,0x01);
}
寻线
上海交大的飞思卡尔寻线算法https://wenku.baidu.com/view/9d90428dd0d233d4b14e690f.html
串口
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
蓝牙串口
1、无线蓝牙串口:
2、有线蓝牙串口:每队蓝牙串口后面都有排插,可以蓝牙间直接通过导线直接连接。