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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12772|回復: 0
收起左側

在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法

[復制鏈接]
ID:80436 發表于 2015-5-20 14:09 | 顯示全部樓層 |閱讀模式
如果使用內部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,再次進入,屢試不爽,試驗完成~~~


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产a三级三级三级 | 夏同学福利网 | 手机av在线 | 欧美成人精品一区二区男人看 | 免费黄篇 | 久久久91精品国产一区二区三区 | 国产成人综合在线 | 欧美国产日韩在线观看 | 精品自拍视频在线观看 | 色欧美片视频在线观看 | 午夜精品久久 | 欧美黑人一级爽快片淫片高清 | 亚洲欧美一区二区三区1000 | 中文字幕电影在线观看 | 伊人久久免费 | 欧美大片一区二区 | 特一级黄色毛片 | 久久精品久久久久久 | 色综合99 | 精品国产一区二区国模嫣然 | 久www| 日本在线中文 | 国产精品自拍啪啪 | 久久久91 | 久久久人成影片一区二区三区 | www.久久精品| 日韩av在线一区二区 | 曰韩三级 | 欧美网站一区二区 | 国产精品视频不卡 | 黄色网址免费在线观看 | 99热都是精品 | 精品国产成人 | 天天操操操操操 | 黄免费观看视频 | 欧美黑人一级爽快片淫片高清 | av高清| 日本成人三级电影 | 一区二区成人 | 在线观看视频一区 | 国产精品久久久久久久久久免费看 |