#define NVIC_IPR_BASEADDR (volatile)((uint32_t *)0XE000E400)
#define No_PR_Bits_Implemented 4
void GPIO_IRQPriorityConfig(uint8_t IRQNumber, uint8_t IRQPriority);
int main(void)
{
void GPIO_IRQPriorityConfig(uint8_t IRQNumber, uint8_t IRQPriority)
{
//1. First lets find out the IPR register.
uint8_t iprx= IRQNumber/4;
uint8_t iprx_section= IRQNumber%4;
uint8_t shift_amount = (8 * iprx_section) + (8- No_PR_Bits_Implemented);
*(NVIC_IPR_BASEADDR + iprx * 4 ) |= (IRQPriority << shift_amount); //error line
}
}
質問する
203 次
1 に答える
1
#define NVIC_IPR_BASEADDR (volatile)((uint32_t *)0XE000E400)
それはポインタ型にはなりません。外側(volatile)
には明示的な型がないため、型のデフォルトは になりint
ます。たとえば、gcc を使用すると、次のような警告が表示されます。
warning: type defaults to ‘int’ in type name [-Wimplicit-int]
正しい定義は次のとおりです。
#define NVIC_IPR_BASEADDR ((volatile uint32_t *)0XE000E400)
于 2020-07-14T05:36:16.213 に答える