Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 4:02980a730cfb, committed 2015-04-26
- Comitter:
- kenjiArai
- Date:
- Sun Apr 26 09:31:58 2015 +0000
- Parent:
- 3:455df34f7285
- Commit message:
- Set output port PA8 & PC9 high speed mode
Changed in this revision
debug_tools/mon_hw_STM32.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/debug_tools/mon_hw_STM32.cpp Sat Apr 25 04:23:59 2015 +0000 +++ b/debug_tools/mon_hw_STM32.cpp Sun Apr 26 09:31:58 2015 +0000 @@ -11,6 +11,7 @@ * Spareted: June 25th, 2014 mon() & mon_hw() * restart: July 12th, 2014 * Revised: April 25th, 2015 Bug fix ('o' command) pointed out by Topi Makinen + * Revised: April 26th, 2015 Change Port output speed (set High speed) * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE @@ -38,7 +39,7 @@ uint32_t SystemFrequency; uint8_t quitflag; -uint32_t reg_save0, reg_save1, reg_save2, reg_save3, reg_save4; +uint32_t reg_save0, reg_save1, reg_save2, reg_save3, reg_save4, reg_save5, reg_save6; // ROM / Constant data --------------------------------------------------------------------------- #if defined(TARGET_NUCLEO_F401RE) @@ -532,10 +533,12 @@ GPIOx = GPIOA; reg_save0 = GPIOx->AFR[8 >> 3]; reg_save1 = GPIOx->MODER; + reg_save2 = GPIOx->OSPEEDR; GPIOx = GPIOC; - reg_save2 = GPIOx->AFR[9 >> 3]; - reg_save3 = GPIOx->MODER; - reg_save4 = RCC->CFGR; + reg_save3 = GPIOx->AFR[9 >> 3]; + reg_save4 = GPIOx->MODER; + reg_save5 = GPIOx->OSPEEDR; + reg_save6 = RCC->CFGR; } else { // PA8 -> MCO_1 GPIOx = GPIOA; @@ -544,6 +547,7 @@ GPIOx->AFR[8 >> 3] |= temp; GPIOx->MODER &= ~(GPIO_MODER_MODER0 << (8 * 2)); GPIOx->MODER |= (0x2 << (8 * 2)); + GPIOx->OSPEEDR |= (0x03 << (8 * 2)); // High speed // PC9 -> MCO_2 GPIOx = GPIOC; temp = ((uint32_t)(GPIO_AF0_MCO) << (((uint32_t)9 & (uint32_t)0x07) * 4)) ; @@ -551,6 +555,7 @@ GPIOx->AFR[9 >> 3] |= temp; GPIOx->MODER &= ~(GPIO_MODER_MODER0 << (9 * 2)); GPIOx->MODER |= (0x2 << (9 * 2)); + GPIOx->OSPEEDR |= (0x03 << (9 * 2)); // High speed // Select output clock source RCC->CFGR &= 0x009fffff; if (n == 1){ @@ -573,12 +578,14 @@ GPIOx = GPIOA; GPIOx->AFR[8 >> 3] = reg_save0; GPIOx->MODER = reg_save1; + GPIOx->OSPEEDR = reg_save2; // PC9 -> MCO_2 GPIOx = GPIOC; - GPIOx->AFR[9 >> 3] = reg_save2; - GPIOx->MODER = reg_save3; + GPIOx->AFR[9 >> 3] = reg_save3; + GPIOx->MODER = reg_save4; + GPIOx->OSPEEDR = reg_save5; // MC0_1 & MCO_2 - RCC->CFGR = reg_save4; + RCC->CFGR = reg_save6; } #endif // defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F411RE)