打印
[技术问题解答]

UART1_D写不进数据?

[复制链接]
1313|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题,用的是KL15系列的,配置都是按例程来的,只是用的内部时钟(开启了,没问题),图中的ch = 0x55;

捕获.PNG (154.56 KB )

捕获.PNG

相关帖子

沙发
luofeng2g|  楼主 | 2014-10-6 21:39 | 只看该作者
求解,自己顶个!!

使用特权

评论回复
板凳
luofeng2g|  楼主 | 2014-10-8 09:44 | 只看该作者
求解啊!!!

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2014-10-8 10:42 | 只看该作者
楼主波特率配置的是多少?
把你的代码工程上传看看。

使用特权

评论回复
5
luofeng2g|  楼主 | 2014-10-8 10:54 | 只看该作者
本帖最后由 luofeng2g 于 2014-10-8 10:56 编辑
FSL_TICS_ZJJ 发表于 2014-10-8 10:42
楼主波特率配置的是多少?
把你的代码工程上传看看。

波特率是按自带的uart.c里面配置的!
sysint.c 中 else if (TERM_PORT_NUM == 1)
                      uart_init (UART1_BASE_PTR, periph_clk_khz, TERMINAL_BAUD);
tower.h中    #define TERMINAL_BAUD       19200
使用的是内部时钟;
void uart_init (UART_MemMapPtr uartch, int sysclk, int baud)
{
    register uint16 sbr;
    uint8 temp;
                                
         
      if (uartch == UART1_BASE_PTR)
        SIM_SCGC4 |= SIM_SCGC4_UART1_MASK;
      else
            SIM_SCGC4 |= SIM_SCGC4_UART2_MASK;
      /* Make sure that the transmitter and receiver are disabled while we
       * change settings.
       */
      UART_C2_REG(uartch) &= ~(UART_C2_TE_MASK
                                | UART_C2_RE_MASK );

      /* Configure the uart for 8-bit mode, no parity */
      UART_C1_REG(uartch) = 0;        /* We need all default settings, so entire register is cleared */
   
      /* Calculate baud settings */
      sbr = (uint16)((sysclk*1000)/(baud * 16));
        
      /* Save off the current value of the uartx_BDH except for the SBR field */
      temp = UART_BDH_REG(uartch) & ~(UART_BDH_SBR(0x1F));
   
      UART_BDH_REG(uartch) = temp |  UART_BDH_SBR(((sbr & 0x1F00) >> 8));
      UART_BDL_REG(uartch) = (uint8)(sbr & UART_BDL_SBR_MASK);
  
      /* Enable receiver and transmitter */
      UART_C2_REG(uartch) |= (UART_C2_TE_MASK
                              | UART_C2_RE_MASK );
   
}
/********************************************************************/
/*
* Wait for a character to be received on the specified uart
*
* Parameters:
*  channel      uart channel to read from
*
* Return Values:
*  the received character
*/
char uart_getchar (UART_MemMapPtr channel)
{
      /* Wait until character has been received */
      while (!(UART_S1_REG(channel) & UART_S1_RDRF_MASK));
   
      /* Return the 8-bit data from the receiver */
      return UART_D_REG(channel);
}
都是自带的!是不是配置为内部时钟有什么问题?

使用特权

评论回复
6
luofeng2g|  楼主 | 2014-10-8 10:58 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-10-8 10:42
楼主波特率配置的是多少?
把你的代码工程上传看看。

初用飞思卡尔的芯片,很多都不了解,在线等!!谢谢!!

使用特权

评论回复
7
FSL_TICS_ZJJ| | 2014-10-8 11:33 | 只看该作者
luofeng2g 发表于 2014-10-8 10:58
初用飞思卡尔的芯片,很多都不了解,在线等!!谢谢!!

如果你使用的UART1,那么你的串口模块时钟用的是bus时钟,你现在periph_clk_khz这个时钟配的是多少?、
你把你工程压缩下,发上来,我这边看看。

使用特权

评论回复
8
luofeng2g|  楼主 | 2014-10-8 11:42 | 只看该作者
本帖最后由 luofeng2g 于 2014-10-8 11:44 编辑
FSL_TICS_ZJJ 发表于 2014-10-8 11:33
如果你使用的UART1,那么你的串口模块时钟用的是bus时钟,你现在periph_clk_khz这个时钟配的是多少?、
...

#if (CLOCK_SETUP == 0)
    #define CPU_XTAL_CLK_HZ                 8000000u /* Value of the external crystal or oscillator clock frequency in Hz */
    #define CPU_INT_SLOW_CLK_HZ             32768u   /* Value of the slow internal oscillator clock frequency in Hz  */
    #define CPU_INT_FAST_CLK_HZ             4000000u /* Value of the fast internal oscillator clock frequency in Hz  */
    #define DEFAULT_SYSTEM_CLOCK            41943040u /* Default System clock value */
配置为内部时钟,
uint32_t SystemCoreClock = DEFAULT_SYSTEM_CLOCK;

SIM_CLKDIV1 = ( 0
                        | SIM_CLKDIV1_OUTDIV1(0)
                        | SIM_CLKDIV1_OUTDIV4(1) );
mcg_clk_hz = SystemCoreClock;
mcg_clk_khz = mcg_clk_hz / 1000;
core_clk_khz = mcg_clk_khz / (((SIM_CLKDIV1 & SIM_CLKDIV1_OUTDIV1_MASK) >> 28)+ 1);
  periph_clk_khz = core_clk_khz / (((SIM_CLKDIV1 & SIM_CLKDIV1_OUTDIV4_MASK) >> 16)+ 1);

时钟的配置整理如上,工程有点乱就不上传了!

使用特权

评论回复
9
FSL_TICS_ZJJ| | 2014-10-8 11:55 | 只看该作者
luofeng2g 发表于 2014-10-8 11:42
#if (CLOCK_SETUP == 0)
    #define CPU_XTAL_CLK_HZ                 8000000u /* Value of the externa ...

好吧,那等下我这边修改个内部时钟的给你参考,还请耐心等待下。

使用特权

评论回复
10
luofeng2g|  楼主 | 2014-10-8 12:12 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-10-8 11:55
好吧,那等下我这边修改个内部时钟的给你参考,还请耐心等待下。

谢谢!!

使用特权

评论回复
11
luofeng2g|  楼主 | 2014-10-8 12:26 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-10-8 11:55
好吧,那等下我这边修改个内部时钟的给你参考,还请耐心等待下。

传上来了

新建文件夹A.part02.rar

2.24 MB

新建文件夹A.part01.rar

4 MB

使用特权

评论回复
12
FSL_TICS_ZJJ| | 2014-10-9 12:37 | 只看该作者
楼主,你好。
你有没有用串口助手或者示波器测试你的UART1引脚,是否有数据出来?


在发送的时候,这个寄存器应该是write-only的,所以你使用寄存器查看是看不出来的。
你需要测试你的串口数据,以及UART引脚是否有数据发出。

使用特权

评论回复
13
luofeng2g|  楼主 | 2014-10-9 17:17 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-10-9 12:37
楼主,你好。
你有没有用串口助手或者示波器测试你的UART1引脚,是否有数据出来?

恩,明白了,谢谢!

使用特权

评论回复
14
FSL_TICS_ZJJ| | 2014-10-10 09:10 | 只看该作者
luofeng2g 发表于 2014-10-9 17:17
恩,明白了,谢谢!

不客气,后续有问题,欢迎继续发帖交流。

使用特权

评论回复
15
Thefantasy| | 2015-1-26 21:25 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

824

帖子

5

粉丝