完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好:
我在做一个串口升级工具,上位机已经验证串口波特率设置到1500000没问题,下位机设置超过1000000(1000000以及以内的波特率都没问题)串口就发送都发送不出去,我系统时钟配置成16000000;看到M4的驱动库里UARTConfigSetExpClk函数if((ui32Baud * 16) > ui32UARTClk)有判断这个条件时必须开启HSE高速模式,我也加上了,但是还是有问题,由于是直接改bootloader的代码,基本上都是直接操作寄存器,现将串口初始化代码贴上: #define UART_FIXED_BAUDRATE 1500000 #define CRYSTAL_FREQ 16000000 HWREG(SYSCTL_RCGCGPIO) |= (UART_RXPIN_CLOCK_ENABLE | UART_TXPIN_CLOCK_ENABLE); HWREG(SYSCTL_RCGCUART) |= UART_CLOCK_ENABLE; HWREG(UART_RXPIN_BASE + GPIO_O_AFSEL) |= UART_RX; HWREG(UART_RXPIN_BASE + GPIO_O_PCTL) |= UART_RX_PCTL; HWREG(UART_RXPIN_BASE + GPIO_O_ODR) &= ~(UART_RX); HWREG(UART_RXPIN_BASE + GPIO_O_DEN) |= UART_RX; HWREG(UART_TXPIN_BASE + GPIO_O_AFSEL) |= UART_TX; HWREG(UART_TXPIN_BASE + GPIO_O_PCTL) |= UART_TX_PCTL; HWREG(UART_TXPIN_BASE + GPIO_O_ODR) &= ~(UART_TX); HWREG(UART_TXPIN_BASE + GPIO_O_DEN) |= UART_TX; HWREG(UARTx_BASE + UART_O_CC) = UART_CLOCK_SYSTEM; // // Set the baud rate. // if(UART_FIXED_BAUDRATE*16 > CRYSTAL_FREQ) [ // // Enable high speed mode. // HWREG(UARTx_BASE + UART_O_CTL) |= UART_CTL_HSE; // // Half the supplied baud rate to compensate for enabling high speed // mode. This allows the following code to be common to both cases. // ui32ProcRatio = UART_BAUD_RATIO(UART_FIXED_BAUDRATE/2); ] HWREG(UARTx_BASE + UART_O_IBRD) = ui32ProcRatio >> 6; HWREG(UARTx_BASE + UART_O_FBRD) = ui32ProcRatio & UART_FBRD_DIVFRAC_M; // // Set data length, parity, and number of stop bits to 8-N-1. // HWREG(UARTx_BASE + UART_O_LCRH) = UART_LCRH_WLEN_8 | UART_LCRH_FEN; HWREG(UARTx_BASE + UART_O_FR) = 0; // Enable RX, TX, and the UART. // HWREG(UARTx_BASE + UART_O_CTL) |= (UART_CTL_UARTEN | UART_CTL_TXE | UART_CTL_RXE); 调试我在循环发送0xAA0X55字符串,结果是当波特率超过1000000,都会挂在while(!(HWREG(UARTx_BASE + UART_O_FR) & UART_FR_TXFE))这个循环出不来,数据也没发送出去。 想请教下,当想使用高速的波特率时该怎样配置才能正常使用? |
|
相关推荐
5 个讨论
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
635 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
585 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1036 浏览 1 评论
707 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
508 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
146浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
112浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
118浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
113浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
155浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-16 08:18 , Processed in 0.810421 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号