---vl6180dr
This commit is contained in:
73
App/app.cpp
73
App/app.cpp
@@ -72,12 +72,14 @@ void AppInit(void)
|
|||||||
** \return none.
|
** \return none.
|
||||||
**
|
**
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
uint8_t temp[2];
|
|
||||||
uint32_t controlPinMs = 0;
|
uint32_t controlPinMs = 0;
|
||||||
uint8_t controlPinFlag = 0;
|
uint8_t controlPinFlag = 0;
|
||||||
uint32_t controlPinDetectedMs = 0;
|
uint32_t controlPinDetectedMs = 0;
|
||||||
uint8_t updateMode = 0;
|
uint8_t updateMode = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void zummerOff (void)
|
void zummerOff (void)
|
||||||
{
|
{
|
||||||
HAL_TIM_Base_Stop(&htimZummer);
|
HAL_TIM_Base_Stop(&htimZummer);
|
||||||
@@ -107,75 +109,67 @@ void proximityMessureCompleted (void)
|
|||||||
|
|
||||||
|
|
||||||
VL6180_RangeData_t VL6180_Range;
|
VL6180_RangeData_t VL6180_Range;
|
||||||
uint32_t waitAnsweredMs = 0;
|
uint32_t waitAnswerFromReaderMs = 0;
|
||||||
#define MAX_WAIT_ANSWER_FROM_GM60 10000
|
#define MAX_WAIT_ANSWER_FROM_GM60 10000
|
||||||
#define DATA_TIMEOUT 500
|
#define DATA_TIMEOUT 500
|
||||||
|
|
||||||
uint32_t lightStartMs = 0;
|
uint32_t lightStartMs = 0;
|
||||||
|
|
||||||
|
|
||||||
uint8_t uartTask (void) // return 0 if data received , otherwise return 1
|
uint8_t uartTask (void) // return 0 if data received , otherwise return 1
|
||||||
{
|
{
|
||||||
if (waitAnsweredMs != 0)
|
|
||||||
|
if (waitAnswerFromReaderMs != 0)
|
||||||
{
|
{
|
||||||
if (HAL_GetTick() - waitAnsweredMs >= MAX_WAIT_ANSWER_FROM_GM60 )
|
if (HAL_GetTick() - waitAnswerFromReaderMs >= MAX_WAIT_ANSWER_FROM_GM60 )
|
||||||
{
|
{
|
||||||
HAL_GPIO_WritePin(READER_EN_GPIO_Port, READER_EN_Pin, GPIO_PIN_SET );
|
HAL_GPIO_WritePin(READER_EN_GPIO_Port, READER_EN_Pin, GPIO_PIN_SET );
|
||||||
HAL_Delay(500);
|
HAL_Delay(500);
|
||||||
HAL_GPIO_WritePin(READER_EN_GPIO_Port, READER_EN_Pin, GPIO_PIN_RESET );
|
HAL_GPIO_WritePin(READER_EN_GPIO_Port, READER_EN_Pin, GPIO_PIN_RESET );
|
||||||
waitAnsweredMs = 0;
|
waitAnswerFromReaderMs = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) {
|
if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) {
|
||||||
waitAnsweredMs = HAL_GetTick();
|
waitAnswerFromReaderMs = HAL_GetTick();
|
||||||
temp[1] = bridge.uart1Buf->dequeue();
|
std::string_view stringView{bridge.uart1Buf->dequeue()};
|
||||||
HAL_UART_Transmit_IT(bridge.getHuart2(), &temp[1], 1);
|
if (stringView.find("FIRMWARE_UPDATE") != std::string::npos)
|
||||||
|
{
|
||||||
|
HAL_UART_DeInit(&huart1);
|
||||||
|
BootComInit();
|
||||||
|
zummerOff();
|
||||||
|
lightingOff();
|
||||||
|
}
|
||||||
|
else if (stringView.find("ZOOMER_ON") != std::string::npos)
|
||||||
|
{
|
||||||
|
zummerOn();
|
||||||
|
}
|
||||||
|
else if (stringView.find("ZOOMER_OFF") != std::string::npos)
|
||||||
|
{
|
||||||
|
zummerOff();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
HAL_UART_Transmit_IT(bridge.getHuart2(), (const uint8_t*) std::string(stringView).c_str(), stringView.size());
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) {
|
if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) {
|
||||||
temp[2] = bridge.uart2Buf->dequeue();
|
waitAnswerFromReaderMs = 0;
|
||||||
HAL_UART_Transmit_IT(bridge.getHuart1(), &temp[2], 1);
|
std::string_view stringView{bridge.uart2Buf->dequeue()};
|
||||||
|
HAL_UART_Transmit_IT(bridge.getHuart1(), (const uint8_t*) std::string(stringView).c_str(), stringView.size());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
void AppTask(void)
|
void AppTask(void)
|
||||||
{
|
{
|
||||||
if (!updateMode) {
|
if (!updateMode) {
|
||||||
if (uartTask() == 0)
|
uartTask();
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
if (HAL_GetTick() - lightStartMs >= 10000 && lightStartMs > 0)
|
if (HAL_GetTick() - lightStartMs >= 10000 && lightStartMs > 0)
|
||||||
{
|
{
|
||||||
lightStartMs = 0;
|
lightStartMs = 0;
|
||||||
lightingOff();
|
lightingOff();
|
||||||
}
|
}
|
||||||
if (HAL_GPIO_ReadPin(CONTROL_PIN_GPIO_Port, CONTROL_PIN_Pin) == GPIO_PIN_RESET && controlPinFlag == 0) {
|
|
||||||
controlPinDetectedMs = HAL_GetTick();
|
|
||||||
controlPinFlag = 1;
|
|
||||||
} else if (controlPinFlag == 1 && HAL_GPIO_ReadPin(CONTROL_PIN_GPIO_Port, CONTROL_PIN_Pin) == GPIO_PIN_SET ) {
|
|
||||||
controlPinFlag = 0;
|
|
||||||
uint32_t ms = 0;
|
|
||||||
if (controlPinDetectedMs != 0)
|
|
||||||
ms = HAL_GetTick() - controlPinDetectedMs;
|
|
||||||
controlPinDetectedMs = 0;
|
|
||||||
if (ms >= 5000 && ms < 5200) {
|
|
||||||
////////Update mode
|
|
||||||
HAL_UART_DeInit(&huart1);
|
|
||||||
BootComInit();
|
|
||||||
zummerOff();
|
|
||||||
lightingOff();
|
|
||||||
} else if (ms >= 100 && ms < 150) {
|
|
||||||
zummerOn();
|
|
||||||
//////ZUMMER ON
|
|
||||||
} else if (ms >= 200 && ms < 250) {
|
|
||||||
zummerOff();
|
|
||||||
//////ZUMMER OFF
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (bridge.uart1Buf->is_empty() && bridge.uart2Buf->is_empty())
|
if (bridge.uart1Buf->is_empty() && bridge.uart2Buf->is_empty())
|
||||||
{
|
{
|
||||||
if (proximityCompleteMessure == 1)
|
if (proximityCompleteMessure == 1)
|
||||||
@@ -201,7 +195,6 @@ void AppTask(void)
|
|||||||
|
|
||||||
/*** end of AppTask ***/
|
/*** end of AppTask ***/
|
||||||
|
|
||||||
|
|
||||||
/*********************************** end of app.c **************************************/
|
/*********************************** end of app.c **************************************/
|
||||||
|
|
||||||
//////////// FINALLY NEED TO UNCOMMENT BootComCheckActivationRequest and BootComInit for success firmwaare update from HOST
|
//////////// FINALLY NEED TO UNCOMMENT BootComCheckActivationRequest and BootComInit for success firmwaare update from HOST
|
||||||
@@ -7,18 +7,20 @@
|
|||||||
#include "circular_buffer.hpp"
|
#include "circular_buffer.hpp"
|
||||||
#include "usart.h"
|
#include "usart.h"
|
||||||
|
|
||||||
|
#define BUF_SIZE 1024U
|
||||||
|
#define MAX_QUEUE 16
|
||||||
|
|
||||||
class UartBridge{
|
class UartBridge{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
UartBridge(bool isOn, USART_TypeDef *uart1, USART_TypeDef *uart2, uint16_t baudRate1,
|
UartBridge(bool isOn, USART_TypeDef *uart1, USART_TypeDef *uart2, uint16_t baudRate1,
|
||||||
uint16_t baudRate2);
|
uint16_t baudRate2);
|
||||||
Circular_Buffer<uint8_t> *uart1Buf;
|
Circular_Buffer<std::string_view> *uart1Buf;
|
||||||
Circular_Buffer<uint8_t> *uart2Buf;
|
Circular_Buffer<std::string_view> *uart2Buf;
|
||||||
bool isTurnOn() const;
|
bool isTurnOn() const;
|
||||||
void setTurnOn(bool isTurnOn);
|
void setTurnOn(bool isTurnOn);
|
||||||
volatile uint8_t dataFromUart1;
|
volatile uint8_t dataFromUart1[BUF_SIZE];
|
||||||
volatile uint8_t dataFromUart2;
|
volatile uint8_t dataFromUart2[BUF_SIZE];
|
||||||
void init(void);
|
void init(void);
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@@ -28,7 +30,8 @@ protected:
|
|||||||
UART_HandleTypeDef uart1Handle, uart2Handle;
|
UART_HandleTypeDef uart1Handle, uart2Handle;
|
||||||
public:
|
public:
|
||||||
UART_HandleTypeDef* getHuart1() ;
|
UART_HandleTypeDef* getHuart1() ;
|
||||||
|
bool receiveStarted;
|
||||||
|
bool receiveTimeout = true;
|
||||||
UART_HandleTypeDef* getHuart2() ;
|
UART_HandleTypeDef* getHuart2() ;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -71,11 +71,7 @@ void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
|
||||||
GPIO_InitStruct.Pin = CONTROL_PIN_Pin;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
||||||
HAL_GPIO_Init(CONTROL_PIN_GPIO_Port, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/* EXTI interrupt init*/
|
/* EXTI interrupt init*/
|
||||||
HAL_NVIC_SetPriority(EXTI0_1_IRQn, 1, 0);
|
HAL_NVIC_SetPriority(EXTI0_1_IRQn, 1, 0);
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ void MX_TIM14_Init(void)
|
|||||||
htimLighitng.Instance = TIM14;
|
htimLighitng.Instance = TIM14;
|
||||||
htimLighitng.Init.Prescaler = 1;
|
htimLighitng.Init.Prescaler = 1;
|
||||||
htimLighitng.Init.CounterMode = TIM_COUNTERMODE_UP;
|
htimLighitng.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
htimLighitng.Init.Period = 63999;
|
htimLighitng.Init.Period = 100;
|
||||||
htimLighitng.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
htimLighitng.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
htimLighitng.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
htimLighitng.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
if (HAL_TIM_Base_Init(&htimLighitng) != HAL_OK)
|
if (HAL_TIM_Base_Init(&htimLighitng) != HAL_OK)
|
||||||
@@ -110,7 +110,7 @@ void MX_TIM14_Init(void)
|
|||||||
Error_Handler();
|
Error_Handler();
|
||||||
}
|
}
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
||||||
sConfigOC.Pulse = 32000;
|
sConfigOC.Pulse = 1;
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htimLighitng, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
if (HAL_TIM_PWM_ConfigChannel(&htimLighitng, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
|
||||||
|
|||||||
@@ -3,27 +3,31 @@
|
|||||||
//
|
//
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "usart.h"
|
#include "usart.h"
|
||||||
|
#include "tim.h"
|
||||||
|
|
||||||
}
|
}
|
||||||
#include "uart_bridge.hpp"
|
#include "uart_bridge.hpp"
|
||||||
|
|
||||||
UartBridge* bridgePnt;
|
UartBridge* bridgePnt;
|
||||||
|
|
||||||
|
|
||||||
uint8_t data[2];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern "C" void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
|
extern "C" void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
|
||||||
|
|
||||||
if (huart == bridgePnt->getHuart1())
|
if (huart == bridgePnt->getHuart1())
|
||||||
{
|
{
|
||||||
bridgePnt->uart1Buf->enqueue(bridgePnt->dataFromUart1);
|
std::string_view stringView{(const char *) bridgePnt->dataFromUart1, Size};
|
||||||
HAL_UART_Receive_IT(bridgePnt->getHuart1(), (uint8_t*)&bridgePnt->dataFromUart1, 1);
|
bridgePnt->uart1Buf->enqueue(stringView);
|
||||||
|
HAL_UARTEx_ReceiveToIdle_IT(bridgePnt->getHuart1(),(uint8_t*)bridgePnt->dataFromUart1, BUF_SIZE );
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (huart == bridgePnt->getHuart2())
|
else if (huart == bridgePnt->getHuart2())
|
||||||
{
|
{
|
||||||
bridgePnt->uart2Buf->enqueue(bridgePnt->dataFromUart2);
|
std::string_view stringView{(const char *) bridgePnt->dataFromUart2, Size};
|
||||||
HAL_UART_Receive_IT(bridgePnt->getHuart2(), (uint8_t*)&bridgePnt->dataFromUart2, 1);
|
bridgePnt->uart2Buf->enqueue(stringView);
|
||||||
|
HAL_UARTEx_ReceiveToIdle_IT(bridgePnt->getHuart2(),(uint8_t*)bridgePnt->dataFromUart2, BUF_SIZE );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -34,8 +38,8 @@ UartBridge::UartBridge(bool isOn, USART_TypeDef *uart1, USART_TypeDef *uart2, ui
|
|||||||
uart2(uart2)
|
uart2(uart2)
|
||||||
{
|
{
|
||||||
bridgePnt = this;
|
bridgePnt = this;
|
||||||
UartBridge::uart1Buf = new Circular_Buffer<uint8_t>(1024);
|
UartBridge::uart1Buf = new Circular_Buffer<std::string_view>(MAX_QUEUE);
|
||||||
UartBridge::uart2Buf = new Circular_Buffer<uint8_t>(1024);
|
UartBridge::uart2Buf = new Circular_Buffer<std::string_view>(MAX_QUEUE);
|
||||||
uart1Handle.Instance = uart1;
|
uart1Handle.Instance = uart1;
|
||||||
uart1Handle.Init.BaudRate = baudRate1;
|
uart1Handle.Init.BaudRate = baudRate1;
|
||||||
uart1Handle.Init.WordLength = UART_WORDLENGTH_8B;
|
uart1Handle.Init.WordLength = UART_WORDLENGTH_8B;
|
||||||
@@ -91,8 +95,8 @@ UART_HandleTypeDef* UartBridge::getHuart2() {
|
|||||||
void UartBridge::init(void) {
|
void UartBridge::init(void) {
|
||||||
uartInit(&uart1Handle);
|
uartInit(&uart1Handle);
|
||||||
uartInit(&uart2Handle);
|
uartInit(&uart2Handle);
|
||||||
HAL_UART_Receive_IT(&uart1Handle, (uint8_t*)&dataFromUart1, 1);
|
HAL_UARTEx_ReceiveToIdle_IT(&uart1Handle,(uint8_t*)dataFromUart1, BUF_SIZE );
|
||||||
HAL_UART_Receive_IT(&uart2Handle, (uint8_t*)&dataFromUart2, 1);
|
HAL_UARTEx_ReceiveToIdle_IT(&uart2Handle,(uint8_t*)dataFromUart2, BUF_SIZE );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -121,3 +125,4 @@ extern "C" void USART2_IRQHandler(void)
|
|||||||
|
|
||||||
/* USER CODE END USART2_IRQn 1 */
|
/* USER CODE END USART2_IRQn 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ CAD.pinconfig=
|
|||||||
CAD.provider=
|
CAD.provider=
|
||||||
File.Version=6
|
File.Version=6
|
||||||
GPIO.groupedBy=Group By Peripherals
|
GPIO.groupedBy=Group By Peripherals
|
||||||
I2C2.IPParameters=Timing
|
|
||||||
I2C2.Timing=0x10707DBC
|
|
||||||
KeepUserPlacement=false
|
KeepUserPlacement=false
|
||||||
Mcu.CPN=STM32G070CBT6
|
Mcu.CPN=STM32G070CBT6
|
||||||
Mcu.Family=STM32G0
|
Mcu.Family=STM32G0
|
||||||
@@ -136,34 +134,33 @@ ProjectManager.StackSize=0x400
|
|||||||
ProjectManager.TargetToolchain=STM32CubeIDE
|
ProjectManager.TargetToolchain=STM32CubeIDE
|
||||||
ProjectManager.ToolChainLocation=
|
ProjectManager.ToolChainLocation=
|
||||||
ProjectManager.UnderRoot=true
|
ProjectManager.UnderRoot=true
|
||||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_I2C2_Init-I2C2-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_USART2_UART_Init-USART2-false-HAL-true,6-MX_TIM3_Init-TIM3-false-HAL-true
|
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_I2C2_Init-I2C2-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_USART2_UART_Init-USART2-false-HAL-true,6-MX_TIM3_Init-TIM3-false-HAL-true,7-MX_TIM14_Init-TIM14-false-HAL-true,8-MX_TIM16_Init-TIM16-false-HAL-true
|
||||||
RCC.ADCFreq_Value=64000000
|
RCC.ADCFreq_Value=16000000
|
||||||
RCC.AHBFreq_Value=64000000
|
RCC.AHBFreq_Value=16000000
|
||||||
RCC.APBFreq_Value=64000000
|
RCC.APBFreq_Value=16000000
|
||||||
RCC.APBTimFreq_Value=64000000
|
RCC.APBTimFreq_Value=16000000
|
||||||
RCC.CortexFreq_Value=64000000
|
RCC.CortexFreq_Value=16000000
|
||||||
RCC.EXTERNAL_CLOCK_VALUE=48000
|
RCC.EXTERNAL_CLOCK_VALUE=48000
|
||||||
RCC.FCLKCortexFreq_Value=64000000
|
RCC.FCLKCortexFreq_Value=16000000
|
||||||
RCC.FamilyName=M
|
RCC.FamilyName=M
|
||||||
RCC.HCLKFreq_Value=64000000
|
RCC.HCLKFreq_Value=16000000
|
||||||
RCC.HSE_VALUE=8000000
|
RCC.HSE_VALUE=8000000
|
||||||
RCC.HSI_VALUE=16000000
|
RCC.HSI_VALUE=16000000
|
||||||
RCC.I2C1Freq_Value=64000000
|
RCC.I2C1Freq_Value=16000000
|
||||||
RCC.I2S1Freq_Value=64000000
|
RCC.I2S1Freq_Value=16000000
|
||||||
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APBFreq_Value,APBTimFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2S1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLN,PLLPoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USART2Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
|
RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APBFreq_Value,APBTimFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2S1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLN,PLLPoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,SYSCLKFreq_VALUE,USART1Freq_Value,USART2Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
|
||||||
RCC.LSCOPinFreq_Value=32000
|
RCC.LSCOPinFreq_Value=32000
|
||||||
RCC.LSE_VALUE=32768
|
RCC.LSE_VALUE=32768
|
||||||
RCC.LSI_VALUE=32000
|
RCC.LSI_VALUE=32000
|
||||||
RCC.MCO1PinFreq_Value=64000000
|
RCC.MCO1PinFreq_Value=16000000
|
||||||
RCC.PLLN=16
|
RCC.PLLN=16
|
||||||
RCC.PLLPoutputFreq_Value=64000000
|
RCC.PLLPoutputFreq_Value=64000000
|
||||||
RCC.PLLRCLKFreq_Value=64000000
|
RCC.PLLRCLKFreq_Value=64000000
|
||||||
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
|
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
|
||||||
RCC.PWRFreq_Value=64000000
|
RCC.PWRFreq_Value=16000000
|
||||||
RCC.SYSCLKFreq_VALUE=64000000
|
RCC.SYSCLKFreq_VALUE=16000000
|
||||||
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
|
RCC.USART1Freq_Value=16000000
|
||||||
RCC.USART1Freq_Value=64000000
|
RCC.USART2Freq_Value=16000000
|
||||||
RCC.USART2Freq_Value=64000000
|
|
||||||
RCC.VCOInputFreq_Value=8000000
|
RCC.VCOInputFreq_Value=8000000
|
||||||
RCC.VCOOutputFreq_Value=128000000
|
RCC.VCOOutputFreq_Value=128000000
|
||||||
SH.GPXTI0.0=GPIO_EXTI0
|
SH.GPXTI0.0=GPIO_EXTI0
|
||||||
|
|||||||
Reference in New Issue
Block a user