在DOC文件夹中已经说明好接线示意图,本程序适用于stm32f103C8也可以自己改一下startup.s和宏定义就可以适用于所有stm32f103系列
单片机源程序如下:
- #include "stm32f10x.h"
- #include "bsp_led.h"
- #include "bsp_pwm_output.h"
- #include "bsp_SysTick.h"
- #include "bsp_uart.h"
- #include "stdio.h"
- #include "bsp_ps2.h"
- #include "bsp_control.h"
- extern uint8_t Flag_Send ;
- extern uint8_t i;
- extern uint8_t j;
- extern uint16_t ucTemp[][6];
- extern u16 Speed[];
- extern u32 BasicTimer;
- u32 MeasureTime = 0;
- int main(void)
- {
- u8 key;
- /* 初始化LED灯 */
- RGB_LED_Config(LED_R_GPIO_PIN);
- TIMx_PWM_Init();
- /* 初始化滴答定时器 */
- SysTick_Init();
- /* 使能滴答定时器 */
- SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
- /* 初始化USART */
- UART_Config();
- //初始化PS2
- PS2_Init();
- PS2_SetInit(); //配配置初始化,配置“红绿灯模式”,并选择是否可以修改
- printf("初始化完成\n");
- while(1)
- {
- //MeasureTime = BasicTimer;
- LED_R(0);
- MeasureTime = BasicTimer;
- Get_ControlMessage(ucTemp);
- ChangeAngle();
- #if 0
- key=PS2_DataKey();
- if(key!=0) //有按键按下
- {
- printf(" \r\n %d is light \r\n",Data[1]);//ID
- printf(" \r\n %d is pressed \r\n",key);
- if(key == 11)
- {
- PS2_Vibration(PS2_AnologData(PSS_LX),0x00); //发出震动后必须有延时 delay_ms(1000);
- Delay_ms(50);
- }
- else if(key == 12)
- {
- PS2_Vibration(0x00,PS2_AnologData(PSS_RX)); //发出震动后必须有延时 delay_ms(1000);
- Delay_ms(50);
- }
- else
- PS2_Vibration(0x00,0x00);
- }
- printf(" %5d %5d %5d %5d\r\n",PS2_AnologData(PSS_LX),PS2_AnologData(PSS_LY),
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
ROBOT.rar
(583.09 KB, 下载次数: 112)
|