你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8L051复用PC5,PC6脚做串口无输出

[复制链接]
风-417456 提问时间:2015-6-12 10:42 /
#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脚上用示波器观察没有输出,是配置上还有问题吗?

收藏 评论4 发布时间:2015-6-12 10:42

举报

4个回答
小小超 回答时间:2015-6-12 13:42:16
学习一下。没用过L系列的
风-417456 回答时间:2015-6-12 15:59:49
单纯引脚配置错误照成的。PC_CR1 |= (1<<Uart_TX) | (1<<Uart_RX);粗心大意害死人啊。
为什么是EEFOCUS小白 回答时间:2015-6-15 16:42:17
还用寄存器?
夏明smile 回答时间:2015-6-15 18:21:03
怒赞!!!
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版