STM8L051复用PC5,PC6脚做串口无输出
#define Uart_TX 5#define Uart_RX 6
void Uart_IO_Init(void)
{
PC_DDR &= (~(1<<Uart_TX)) & (~(1<<Uart_RX));
PC_CR1 |= (1<<Uart_TX) & (1<<Uart_RX);
PC_CR2 &= (~(1<<Uart_TX)) & (~(1<<Uart_RX)); //IO配置上拉输入
}
void Uart_Init(void)
{
Uart_IO_Init();
SYSCFG_RMPCR1 |= 0x20; //复用PC5,PC6为串口
USART1_CR1 &=~(1<<2) & ~(1<<1); //8位数据,关闭奇偶校验
USART1_CR1 &= ~(1<<4);
USART1_CR3 &= (~(1<<4)) & (~(1<<5)); //1位停止位
USART1_BRR2 = (unsigned char)(((2000000/9600)>>8) & 0xf0); //
USART1_BRR2 |= ((unsigned char)(2000000/9600) & 0x0f);
USART1_BRR1 = ((unsigned char)(2000000/9600)>>4);
USART1_CR2 |= (1<<2) | (1<<3) ; //使能接收发送
}
以上是我串口配置,发送数据时,TX脚上用示波器观察没有输出,是配置上还有问题吗?
学习一下。没用过L系列的 单纯引脚配置错误照成的。PC_CR1 |= (1<<Uart_TX) | (1<<Uart_RX);粗心大意害死人啊。 还用寄存器? 怒赞!!!
页:
[1]