ͼ4.1 Ö÷º¯ÊýÁ÷³Ìͼ
Ö÷º¯Êý³ÌÐò´úÂëÈçÏ£º int main(void) {
delay_init(168);//ÑÓ³Ùʱ¼ä³õʼ»¯ uart_init(9600);//´®¿Ú³õʼ»¯ Direction(1);//µç»ú³õʼ»¯ delay_ms(10);//ÑÓ³Ù10ms
printf(\ÊäÈëÓï¾ä while(1); }
4.1.2 ´®¿Ú½ÓÊÕÄ£¿é³ÌÐò
Ö÷¿Ø°å½ÓÊÕµ½À¶ÑÀ´Ó´®¿Ú´«À´µÄÊý¾Ýºó´æÈëRes±äÁ¿£¬È»ºóͨ¹ý·ÖÖ§³ÌÐòÀ´Ñ¡ÔñÖ´ÐÐǰ½ø¡¢ºóÍË¡¢×óת¡¢ÓÒתºÍÍ£Ö¹µÈ¹¦ÄÜ¡£¸ÃÄ£¿éµÄ³ÌÐòÁ÷³ÌͼÈçͼ2Ëùʾ£º
ͼ2 ´®¿Ú½ÓÊÕ³ÌÐòÁ÷³Ìͼ
4.1.3 ÐÞ¸ÄPWMÊä³öÖµ³ÌÐò
¸Ã³ÌÐòÊÇ»ùÓÚ¡°4_PWMµÄʵÏÖ¡±ÖеijÌÐò¸Ä±àµÄ¡£´úÂëÈçÏ£º void Change_PWM(int duty1,int duty2,int duty3,int duty4) {
SCB->AIRCR=0x05AF00;// ÖжÏÓÅÏȼ¶·Ö×é ÇÀÕ¼£ºÏìÓ¦=3:1 RCC->AHB1ENR|=(1<<2);// ´ò¿ªGPIOCʱÖÓ
GPIOC->MODER|=0x000AA000;// pc6789µÚ¶þ¹¦ÄÜ£¬ÍÆÍìÊä³ö GPIOC->OSPEEDR|=0x000FF000;//Êä³öËÙ¶ÈΪ100m GPIOC->PUPDR|=0x00055000;//ÉÏÀ
GPIOC->AFR[0]|=0x22000000;//pc6789µÄµÚ¶þ¹¦ÄÜΪAF2 GPIOC->AFR[1]|=0x00000022;
RCC->APB1ENR|=(1<<1);//´ò¿ªTIM3ʱÖÓ
TIM3->PSC=83;//¶Ô84MʱÖÓ½øÐÐ84·ÖƵ£¬Ê¹µÃ¼ÆÊýƵÂÊΪ1M TIM3->ARR=10000;//ÖÜÆÚΪ10ms TIM3->EGR|=1;//²úÉúÒ»´Î¸üÐÂʱ¼ä
TIM3->CCMR1|=0x6060;//PWMģʽ1 TIM3->CCMR2|=0x6060;//PWMģʽ2
TIM3->CCR1=duty1;//1·PWM TIM3->CCR2=duty2;//2·PWM TIM3->CCR3=duty3;//3·PWM
TIM3->CCR4=duty4;//4·PWM
TIM3->CCER|=0x1111;//ʹÄܱȽÏÊä³ö
TIM3->CCMR1|=0x0808;//Æô¶¯Ô¤×°ÔØ TIM3->CCMR2|=0x8080;
TIM3->CR1|=1;//¿ªÊ¼¼ÆÊ± }
4.1.4 ÉèÖõç»úתÏò³ÌÐò
¸Ä³ÌÐò½«µç»úÇý¶¯Ä£¿éµÄ8¸öÊäÈë¶Ë¿Ú½Óµ½ÁËÖ÷¿Ø°åµÄ8¸öGPIO¿Ú£¬Í¨¹ýÍÆÍìÊä³ö£¬´Ó¶ø¿ØÖƵç»úµÄתÏò£¬´úÂëÈçÏ£º void Direction(int direction) {
SysTick_Config(SystemCoreClock / 1000); //ʱÖÓÖжÏÉèΪ1ms RCC->AHB1ENR |= 0x00000005; //ʹÄÜGPIOAºÍGPIODʱÖÓ RCC->APB2ENR |= (1<<14); //ʹÄÜsyscfgʱÖÓ
if(direction==0) {
GPIOA->MODER &= 0xffff0000; //ÉèÖÃPA0£¬1£¬2£¬3ΪÊä³ö GPIOA->MODER |= 0x00005555;
GPIOA->OTYPER &= 0xFFFFff00; //ÉèÖÃPA0£¬1£¬2£¬3ÎªÍÆÍìÊä³ö
GPIOA->OSPEEDR &= 0xffff0000; //ÉèÖÃPA0£¬1£¬2£¬3µÄÊä³öËÙ¶ÈΪ100M GPIOA->OSPEEDR |= 0x0000ffff;
SYSCFG->CMPCR = 0x00000001; //ʹÓÃIO²¹³¥µ¥Ôª
GPIOA->PUPDR &= 0xffffff00; //ÉèÖÃPA0£¬1£¬2£¬3ÎÞÉÏÀ£¬ÎÞÏÂÀ GPIOA->BSRRH = 0x00ff; //¸´Î»GPIOA_BSRRH¼Ä´æÆ÷ GPIOA->BSRRL = 0x0055; } else {
GPIOA->MODER &= 0xffff0000; //ÉèÖÃPA0£¬1£¬2£¬3ΪÊä³ö GPIOA->MODER |= 0x0000005555;
GPIOA->OTYPER &= 0xFFFFff00; //ÉèÖÃPA0£¬1£¬2£¬3ÎªÍÆÍìÊä³ö
GPIOA->OSPEEDR &= 0xffff0000; //ÉèÖÃPA0£¬1£¬2£¬3µÄÊä³öËÙ¶ÈΪ100M GPIOA->OSPEEDR |= 0x0000ffff;
SYSCFG->CMPCR = 0x00000001; //ʹÓÃIO²¹³¥µ¥Ôª
GPIOA->PUPDR &= 0xffffff00; //ÉèÖÃPA0£¬1£¬2£¬3ÎÞÉÏÀ£¬ÎÞÏÂÀ GPIOA->BSRRH = 0x00ff; //¸´Î»GPIOA_BSRRH¼Ä´æÆ÷ GPIOA->BSRRL = 0x00AA; } }
4.2 android¿Í»§¶Ë³ÌÐòÉè¼Æ 4.2.1 ¿ØÖƽçÃæµÄ²¼¾Ö
¿ØÖƽçÃæÖ÷ÒªÔËÓÃÁËÏßÐÔ²¼¾Ö¡¢Ïà¶Ô²¼¾ÖºÍ±í¸ñ²¼¾Ö¡£ÕûÌå²ÉÓÃÏßÐÔ²¼¾Ö£¬¾Ö²¿²ÉÓÃÏà¶Ô²¼¾Ö£¬¶ø¿ØÖư´Å¥²ÉÓÃÁ˱í¸ñ²¼¾Ö¡£¿ØÖƽçÃæµÄ²¼¾ÖÈçͼ4.1Ëùʾ£º
ͼ4.1 ¿ØÖƽçÃæµÄ²¼¾Ö
4.2.2 ²¼¾ÖµÄ´úÂëÈçÏ£º
android:id = \ android:orientation=\ android:layout_width=\ android:layout_height=\ > android:layout_width=\ android:layout_height=\ android:id= \ android:layout_alignParentBottom = \> android:layout_width=\