本帖最后由 drifer 于 2021-1-27 12:19 编辑
算是修改成功了,所以发一些函数替换关系, 修改注意点
1. TIM1.1 函数对应关系 | | | LL_TIM_DisableCounter(TIMx); | |
| LL_TIM_ClearFlag_UPDATE( TIMx ); | TMR_ClearFlag(TMRx, TMR_FLAG_Update); |
| LL_TIM_SetCounter(TIMx,0); | |
| LL_TIM_SetAutoReload(TIMx, (uint32_t)halfperiod); | TMR_SetAutoreload(TMRx, (uint32_t)halfperiod); |
| LL_TIM_SetRepetitionCounter(TIMx, 1); | TMR_SetRepetitionCount(TMR_Type* TMRx, uint32_t repetitioncount) | | LL_TIM_OC_SetCompareCH1(TIMx, ((uint32_t)halfperiod / (uint32_t) 2)); | TMR_SetCompare1/TMR_SetCompare2/TMR_SetCompare3 |
| LL_TIM_EnableCounter(TIMx); | |
| LL_TIM_IsActiveFlag_UPDATE( TIMx ) | TMR_GetFlagStatus(TMRx , TMR_FLAG_Update) |
| TIMx->BDTR |= LL_TIM_OSSI_ENABLE; | TMRx->BRKDT |= TMR_OSIMIState_Enable; |
| LL_TIM_EnableAllOutputs ( TIMx ); | TMR_CtrlPWMOutputs(TMRx, ENABLE); |
| LL_TIM_DisableIT_UPDATE( TIMx ); | TMR_INTConfig(TMRx,TMR_INT_Overflow,DISABLE); |
| | |
| | |
| | |
|
|
|
|
2. ADC2.1 函数对应关系 | | | LL_ADC_IsActiveFlag_JEOS(ADC2) | ADC_GetFlagStatus(ADC2, ADC_FLAG_JEC) |
| LL_ADC_ClearFlag_JEOS( ADC2 ); | ADC_ClearFlag(ADC2, ADC_FLAG_JEC) |
| |
|
| LL_ADC_DisableIT_EOC(regConv->regADC); | ADC_INTConfig(regConv->regADC, ADC_INT_EC, DISABLE); |
| LL_ADC_StartCalibration( regConv->regADC, LL_ADC_SINGLE_ENDED ); | |
| LL_ADC_IsCalibrationOnGoing( regConv->regADC ) | |
| | ADC_Ctrl(regConv->regADC, ENABLE); |
| LL_ADC_REG_SetSequencerLength( regConv->regADC, LL_ADC_REG_SEQ_SCAN_DISABLE ); | regConv->regADC->RSQ1 &= ~ADC_RSQ1_LEN; |
| LL_ADC_SetChannelSamplingTime ( regConv->regADC, __LL_ADC_DECIMAL_NB_TO_CHANNEL(regConv->channel) ,regConv->samplingTime); |
|
|
|
|
|
|
|
|
2.2 注入序列采样AT32F403A的适配对象是STM32F103,所以和STM32F303还是有不少区别的,比如STM32F303的注入采样配置都在寄存器ADCx_JSQR里面,而STM32F103或者AT32F403A是在两个寄存器里面配置的。分别是ADC_CTRL2配置JEXT TRIG、 JEXSEL, 和寄存器ADC_JSQ配置JLEN、JSQx. 2.3 校准STM32F303的ADC校准必须要ADON=0时执行,而AT32F403A的ADC校准必须在ADON=1的时候执行。 3. SYSTICK3.1 函数对应关系
4. DBGMCU
4.1 函数对应关系
5. CAN5.1 函数/结构体对应关系 | | | | | - CanTxMsg多了一个数据数组uint8_t Data[8];
- IDE变IDT
| | | 修改CAN_Transmit的函数定义, 数据单独一个变量 | | | CAN_HandleTypeDef大部分内容不使用. | | CAN_OperatingModeRequest(CAN_OperatingMode_Normal) | | HAL_CAN_ActivateNotification | |
| | CAN_OperatingModeRequest(CAN_OperatingMode_Initialization) | | | |
| HAL_CAN_GetTxMailboxesFreeLevel | AT_CAN_GetTxMailboxesFreeLevel | | HAL_CAN_GetRxMessage | | 修改 CAN_Receive的函数定义, 数据单独一个变量 | |
|
| __HAL_CAN_CLEAR_FLAG(hcan, CAN_FLAG_RQCP0); | CAN_ClearFlag(CANx, CAN_FLAG_RQCP0); |
|
6. IWDG
6.1 函数/结构体对应关系 | | | LL_IWDG_ReloadCounter(IWDG); | IWDG_ReloadCounter() |
|
|
|
|
|
|
|
|
|
|
7. GPIOGPIO没有pull up pull down配置。AT系列里面,只有AT32F421才有。 7.1 函数/结构体对应关系
8. SPISPI我使用的是SPI1,管脚是PA15/PB3/4/5。 这里有个需要注意的地方,AT32403A默认是开启JTAG功能的,这几个管脚默认配置给JTAG,相关说明可以在章节“JTAG/SWD复用功能重映射”里面看到,上电默认的SWJTAG_CONF[2:0]=0x00意味着PA13/14/15,PB3/4/5都不能当GPIO用,因为指定给JTAG使用了。 针对我的实际应用而言,JTAG可以关闭,SWD还得用。所以一上电,时钟配置后就需要修改这些管脚。 8.1 函数/结构体对应关系
|