MSPFR4xxx_FR2xxx系列用户指南( SLAU445G )将CSCTL4位9记录为只读位。
"MSP430FR2xx_4xx" DriverLib´s CS_initClockSignal的cs.c实现如果与CS_ACLK,CS_VLOCLK_SELECT一起调用,则清晰地将1写入其中。
此外:如果使用其他源之一调用,它将清除该位,因为"&=~(拉美经济体系)"仅掩码CSCTL4位8。
那么:此芯片系列是否实际上支持CSCTL4 位9,还是这只是DriverLib中未发现的错误?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
MSPFR4xxx_FR2xxx系列用户指南( SLAU445G )将CSCTL4位9记录为只读位。
"MSP430FR2xx_4xx" DriverLib´s CS_initClockSignal的cs.c实现如果与CS_ACLK,CS_VLOCLK_SELECT一起调用,则清晰地将1写入其中。
此外:如果使用其他源之一调用,它将清除该位,因为"&=~(拉美经济体系)"仅掩码CSCTL4位8。
那么:此芯片系列是否实际上支持CSCTL4 位9,还是这只是DriverLib中未发现的错误?
PS:这是有问题的DriverLibs源代码:
void CS_initClockSignal (uint8_t selectedClockSignal,
UINT16_t时钟源,
UINT16_t clockSourceDivider)
{
uINT16_t临时;
开关(选定时钟信号)
{
案例CS_ACLK:
HWREG16 (CS_BASE + OFS_CSCTL4)&=~(拉美经济体系);
IF (clockSource == CS_XT1CLK_SELECT)
{
ClockSource = 0x0;
}
否则,如果(CclockSource == CS_REFOCLK_SELECT)
{
ClockSource = 0x1;
}
否则,如果(CclockSource == CS_VLOCLK_SELECT)
{
ClockSource = 0x2;
}
clockSource = clockSource <<8;
HWREG16 (CS_BASE + OFS_CSCTL4)||(时钟源);
答案不是DriverLib错误。 某些MSP430FR4xx/FR2xx器件支持通过VLO进行ACLK源,并在CSCTL4中选择第8和第9位,但这不是MSP430FR2xx/4xx的选项。 Driverlib可能需要使用#defines来区分设备变体,也可能需要尝试写入只读位。 由于后者不会影响操作,因此特意选择后者是为了简化代码,因此 目前使用CS_VLOCLK_SELECT将ACLK源设置为REFO。
编辑:修改答案
此致,
Ryan