久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法 [打印本頁]

作者: liuqq    時間: 2015-5-20 14:09
標題: 在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法
如果使用內部RC振蕩器而不使用外部晶振,請按照下面方法處理:
1)對于100腳或144腳的產品,OSC_IN應接地,OSC_OUT應懸空。
2)對于少于100腳的產品,有2種接法:
  2.1)OSC_IN和OSC_OUT分別通過10K電阻接地。此方法可提高EMC性能。
  2.2)分別重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1為推挽輸出并輸出'0'。此方法可以減小功耗并(相對上面2.1)節省2個外部電阻。
--------------------------------------------------------------------------------
以下是在ST英文網站FAQ上抄下的詳細解釋:
    1)  In 100 and 144 packages,  the OSC_IN /OSC_Out pins are a dedicated pins for HSE and mapped respectively on pins 12, 13 and pins 23, 24 for LQFP packages. Although, for BGA 100 and BGA 144 packages, they are mapped respectively on pins C1,D1 and pins D1,E1. In this case the recommended configuration is:
OSC_In pin must be connected to ground as it is always an input pin
OSC_Out must be left not connected as it is always an output pin.

     2)  In LQFP48 and LQFP64 packages,  the OSC_IN/OSC_Out pins are mapped on pins 5,6 whereas in the VFQFPN36 package they are mapped on pins 2,3. However the PD0 and PD1 functionality can be remapped by software on these pins.  There are two possible configurations:
Hardware configuration: Connect the OSC_IN/OSC_Out pins to ground through a 10K pull down resistors.
Software configuration: First, the OSC_IN/OSC_Out pins are left not connected on PCB layout. Then, remap the PD0 and PD1 functionality by software on these pins and configure the PD0/PD1 to Output push-pull forced to 0 logic level(Data Register = 0). This will maintain those I/Os to a fixed level minimizing Noise and external stress on these pins.

     The software configuration is recommended to reduce the power consumption and saves cost by avoiding the use of external pull down resistors as the I/O is already connected to the ground internally. Whereas the hardware configuration is recommended to increase the EMC performance.

STM32中如何使用PC14和PC15
     在STM32的數據手冊的管腳分配圖中可以看到:PC14與OSC32_IN公用一個引腳,PC15與OSC32_OUT公用一個引腳,它們的使用方法如下:
當LSE(低速外部時鐘信號)開啟時,這兩個公用管腳的功能是OSC32_IN和OSC32_OUT。
當LSE(低速外部時鐘信號)關閉時這兩個公用管腳的功能是PC14和PC15。
    備用區域控制寄存器(RCC_BDCR)的LSEON用于控制LSE的開啟或關閉。關于這個寄存器的用法請參看《STM3210x技術參考手冊》。
--------------------------------------------------------------------------------
作為GPIO輸出的配置過程:
(1).使能GPIOC時鐘
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

(2).配置GPIOC
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
   GPIO_Init(GPIOC, &GPIO_InitStructure);
(3).然后寫高寫低
  GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_SET);
   GPIO_WriteBit(GPIOC, GPIO_Pin_15, Bit_SET);
   GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_RESET);
   GPIO_WriteBit(GPIOC, GPIO_Pin_15, Bit_RESET);
     以上代碼跑在兩個板子上,一個是backup區域里的RCC_DBCR的LSEON為0,即LSE關閉,以上(3)的操作從示波器上看到了電平相應變換;另外一個板子,backup區域里的RCC_DBCR的LSEON為1,即LSE打開,則以上(3)的操作從示波器上看到無效。
--------------------------------------------------------------------------------
作為GPIO輸入的配置過程:
  只是把以上的(2)稍微改一下,(3)就不用了
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   GPIO_Init(GPIOC, &GPIO_InitStructure);
   外部連接為:在PC14引腳焊了一個電阻,電阻另一端通過跳線在上拉到3.3V和下拉到地的兩種情況下,讀出GPIOC_IDR.14分別為"1"和"0"。
--------------------------------------------------------------------------------
作為外部中斷輸入的配置過程:
1.時鐘使能
// + osc32_in/out --> pc14/15
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC |RCC_APB2Periph_AFIO, ENABLE);
   注意要使能AFIO的時鐘哦
2.中斷配置

  // + for EXTI on PC.14 at falling edge

   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
   NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
   NVIC_Init(&NVIC_InitStructure);
3. GPIO配置同上
4. EXTI配置
// + for PC14 EXTI @ falling edge
   GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource14);
   EXTI_InitStructure.EXTI_Line = EXTI_Line14;
   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
   EXTI_Init(&EXTI_InitStructure);
5. 中斷處理ISR
void EXTI15_10_IRQHandler(void)
{
   if(EXTI_GetITStatus(EXTI_Line14) != RESET)
   {

     EXTI_ClearITPendingBit(EXTI_Line14);
   }
}
     在中斷處設置斷點,只要按下key,就進入中斷,跑出中斷,再按key,再次進入,屢試不爽,試驗完成~~~







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日皮视频在线观看 | 精品欧美一区二区三区久久久 | 可以免费看av的网站 | 国产成人99久久亚洲综合精品 | cao视频| 欧美日韩中文 | 国产精品一区二区久久 | 国产免费久久 | 九九九精品视频 | 成人三级视频 | 特级丰满少妇一级aaaa爱毛片 | 国产在线观看一区 | 3d动漫精品h区xxxxx区 | 韩日av| 国产天堂网 | 国产成人三级在线观看 | 亚洲高清视频在线 | av在线天堂网 | av手机在线免费观看 | 视频一二区 | 亚洲天堂免费 | www操| www.youjizz.com日本| 成年免费视频黄网站在线观看 | 欧美日韩国 | 免费国产精品视频 | 国产伦理一区二区 | 亚洲 欧美 激情 另类 校园 | 亚洲一区二区三区在线播放 | 国产精品高清在线观看 | 在线免费观看日韩av | 黄色小视频在线免费观看 | 在线观看欧美日韩视频 | 欧美久久网 | 欧美日韩高清在线 | 黄色三级av | 日韩黄色大片 | 亚洲精品免费在线 | 天天综合av | 激情一区二区三区 | 亚洲免费在线观看视频 |