我在资源管理器16板上使用上面提到的pic控制器。我正在尝试配置UART,但它无法正常工作 我的代码看起来像这样。
enter code here
#define Bit8_No_Parity 0x00
#define Bit8_E_Parity 0x01
#define Bit8_O_Parity 0x10
#define Stop_Bits_1 0
#define Stop_Bits_2 1
U2MODEBITS U2mode;
U2STABITS U2Sta;
void Uart2_Init()
{
U2BRG = 207; // 9600 for 8 mhz
U2MODE = 0x8000;
U2STA = 0x8400;
U2mode.PDSEL = Bit8_No_Parity ;
U2mode.STSEL = Stop_Bits_1;
U2mode.BRGH = 1;
U2Sta.UTXISEL1 = 1;
U2Sta.UTXISEL0 = 0;
U2mode.UARTEN = 1;
U2Sta.UTXEN = 1;
}
void Transmit_Byte(UCHAR_8 byte)
{
while(U2Sta.UTXBF != 0 );
U2TXREG = byte;
}
以上代码无效。我只在我的主文件中初始化配置位和Uart初始化函数。 寻求帮助。
此致 SANKET
答案 0 :(得分:0)
您似乎使用寄存器布局(U2MODEBITS,U2STABITS)定义变量(U2mode,U2sta),而不是使用任何标头中的预定义寄存器定义。
这意味着没有任何内容写入寄存器,因此没有任何反应。删除声明并写入全部大写的寄存器的实际位版本(C区分大小写!)U2STATBITS,U2MODEBITS。这些将uint大小的U2STA和U2MODE覆盖在内存中,因此您可以将它们混合写入。