yatoo

    1. STM32程序错误 2/2983 stm32/stm8 2012-11-13
      要是楼主用的 iar编译的话,我说的也许对你有帮助,   iar在编译之前需要搭建 开发环境,需要添加一些默认包含路径,和一些定义,还需要配置一些芯片设置,有的还需要开放一个宏定义,说起来很空洞,楼主可以搜索一下 iar下搭建stm32 开发环境,网上有相关资料的........
    2. 详解stm32中断控制原理 18/6709 stm32/stm8 2012-11-08
      多谢楼主,学习ing
    3. 我刚要学,问几个问题行吧? 2/2647 stm32/stm8 2012-11-07
      要是想学的话,建议买个开发板,。。或者说 强力推荐..。。。 第一、二个问题我还没有研究过,貌似网上有很多资料你可以搜索到,度娘一下。。。 第三个问题我用到过,交流下 USARTInit(void) {     //模块时钟配置     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);        //io 端口配置     GPIO_InitTypeDef GPIO_InitStructure;     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 ;//PA9 -- TX1     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;     GPIO_Init(GPIOA, &GPIO_InitStructure);     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ;//PA10 -- RX1     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     GPIO_Init(GPIOA, &GPIO_InitStructure);         //UART 模块配置        USART_InitTypeDef USART_InitStructure;     USART_StructInit(&USART_InitStructure);//设置缺省值     USART_InitStructure.USART_BaudRate = 115200;     USART_InitStructure.USART_WordLength = USART_WordLength_8b;     USART_InitStructure.USART_StopBits = USART_StopBits_1;     USART_InitStructure.USART_Parity = USART_Parity_No;     USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;         USART_Init(USART1, &USART_InitStructure);     USART_Cmd(USART1, ENABLE);         //打开中断     //USART_ITConfig(USART1, USART_IT_TXE, ENABLE);//发送中断     USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//接收中断         //嵌套中断控制器配置     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);     NVIC_InitTypeDef NVIC_InitStructure;     NVIC_InitStructure.NVIC_IRQChannel =USART1_IRQn;     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;     NVIC_Init(&NVIC_InitStructure);     }
    4. 楼主你好,要是让我看直接配置寄存器的话,确实不太习惯啊,以下是我自己写的,实测过......你可以参考下..... void USARTInit(void) { //模块时钟配置     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);        //io 端口配置     GPIO_InitTypeDef GPIO_InitStructure;     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 ;//PA9 -- TX1     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;     GPIO_Init(GPIOA, &GPIO_InitStructure);     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ;//PA10 -- RX1     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     GPIO_Init(GPIOA, &GPIO_InitStructure);         //UART 模块配置        USART_InitTypeDef USART_InitStructure;     USART_StructInit(&USART_InitStructure);//设置缺省值     USART_InitStructure.USART_BaudRate = 115200;     USART_InitStructure.USART_WordLength = USART_WordLength_8b;     USART_InitStructure.USART_StopBits = USART_StopBits_1;     USART_InitStructure.USART_Parity = USART_Parity_No;     USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;         USART_Init(USART1, &USART_InitStructure);     USART_Cmd(USART1, ENABLE); } oid USARTSendByte(unsigned char data)//发送一字节数据 {     while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)//等待至可以发送           ;     USART_SendData(USART1, data);    } void UARTSendData(unsigned char *data, unsigned char count) {     unsigned char i;         for(i = 0; i < count; i++)     {         USARTSendByte(data【i】);//这儿打不上英文状态中括号,你自己改一下     } }
    5. 不知道干嘛的时候接触STM32 9/4995 stm32/stm8 2012-11-07
      楼主加油,我也刚接触stm32 ,菜鸟一个, 硬件上我是门外汉。。51时候使用keil,430用IAR所以stm32就直接选择了IAR开发,感觉就是开始搭建环境的时候,麻烦点,其余的都还好。。。。。。 stm32比51是要复杂的多,好在stm32的资料很多,基本上都可以在网上搜索到遇到问题的解决方法,受教了。。。。。。。
    6. 那么多引脚我还是有点点胆怯,不敢自己焊接.......
    7. 你的 io端口 ,usrt模块的程序都正确。。。。。要是上面发送那儿指针使用正确的话, 那我也搞不懂软件上有什么问题, 建议楼主,仔细检查硬件 ,和 串口调试助手的配置
    8. 我还以为是 楼主程序错了, for( i=0;TxBuf1!='\0';i++)   {       USART_SendData(USART1,TxBuf1);       while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);//等待数据发送完毕    } 指针使用不对,原来是 这个编辑器 的问题,,,顺便问一下,怎么打不上中括号【】....... [ 本帖最后由 yatoo 于 2012-11-7 15:50 编辑 ]
    9. JLINK的驱动问题 3/10598 stm32/stm8 2012-11-07
      我用iAR编译,   感觉jlink很方便,很稳定.........
    10. 超声波测距 2/3400 stm32/stm8 2012-11-05
      这。。。。。。。。。。。
    11. 下载瞅瞅,多谢分享。。。。。。。。
    12. spi在dma模式下读写sd卡 23/16963 stm32/stm8 2012-11-02
      感觉说的有道理。。。
    13. 一点点can资料 7/3108 stm32/stm8 2012-11-02
      非常感谢楼主,我菜鸟,还没有碰过can
    14. STM32-uCOS-II_UAV 25/10977 实时操作系统RTOS 2012-11-02
      谢谢楼主.......
    15. spi的sck引脚问题 2/5504 stm32/stm8 2012-10-24
      不应该啊.........用的双通道示波器打的么。。。。。。。 我没有具体实际过。。
    16. 1 电阻也去掉,就是说不用复位电路,看看可以下载进去程序不 2 还有其他板子么,试一下,一般来说只要硬件连接正确了,很容易下载进去程序,你打过vcc的电压么,要不把你的原理图截图出来看看.........j 3 jtag仿真器驱动识别的了么
    17. 干脆去掉电容试试......
    18. 《振南的znFAT--单片机上的FAT32文件系统》 81/35820 Microchip MCU 2012-10-15
      感谢楼主,菜鸟来报到
    19. 实在是没办法了请高手帮帮忙啊 3/3046 微控制器 MCU 2012-10-14
      以前写过,拿出来参考下 void I2C_init(void) {     SET(PT(I2C_SCL_PORT,DIR,I2C_SCL_BIT));     CLR(PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT)); } void I2C_wait(void) {     asm("NOP");     asm("NOP");     asm("NOP");     asm("NOP");     asm("NOP");     asm("NOP");     asm("NOP");     asm("NOP"); } void I2C_ack(void) {     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));        PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 0;     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 1;     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;     I2C_wait();     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 1; } void I2C_noack(void) {     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 1;     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 1;     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;     I2C_wait();     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 1; } unsigned char I2C_start(void) //在scl高电平过程中,sda产生一个下降沿 {     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     SET(PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT));     I2C_wait();         SET(PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT));     I2C_wait();         CLR(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     if(PT(I2C_SDA_PORT,IN,I2C_SDA_BIT) == 0)// SDA 为低,则说明有其他设备使用sda       return 0;         SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 0; //产生一个下降沿     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;     I2C_wait();     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 1;         return 1; } void I2C_stop(void) {     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 0;     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 1;     I2C_wait();     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 1; // rasing edge     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;     I2C_wait();     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) =1; } unsigned char I2C_waitack(void) {     unsigned int x = 0xffff;     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     SET(PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT));     I2C_wait();     CLR(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;     I2C_wait();     PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 1;             while(PT(I2C_SDA_PORT,IN,I2C_SDA_BIT) == 1)     {         x--;         if(!x)         {             PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;             return 0;         }     }         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));     return 1; } void I2C_send_bit(unsigned char value) {     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));         if(value != 0)         PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 1;     else         PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 0;     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 1;     I2C_wait();         PT(I2C_SCL_PORT,OUT,I2C_SCL_BIT) = 0;     I2C_wait();     PT(I2C_SDA_PORT,OUT,I2C_SDA_BIT) = 1; //拉高sda,不影响其他设备使用sda } void I2C_send_byte(unsigned char value,unsigned char order) {     unsigned char i;     SET(PT(I2C_SDA_PORT,DIR,I2C_SDA_BIT));         if(order == 1) //先发送高位,在发送低位     {         for(i=0; i
    20. 我:Sad: 也是 菜鸟.......根本就不了解这个。。。。。。。。 .但还是用过1 和 2 些列的,也是 IAR环境开发的.......... 要是你曾经正确下进去过一次程序,至少说明你最小系统的硬件原理上是没有问题的。。。 个人觉得你应该仔细检查下单片机硬件,必要时候可以用万用表测试,还有就是核对下你的原理图,抱歉,我也不晓得6些列是 jtag 还是 sbw,给不了你实质性的建议。。。。 加上jtag的时候,检查下单片机的电和地是否连接好 另外有个经验分享给你,又一次调试f2132的时候,开始也是识别不了,然后把复位电路的电容(或者是 电阻,具体记不清楚了)取了,就可以正常下载了。。 另外建议,核对下你的jtag驱动是否装好,可查看电脑硬件管理器看电脑是否正确识别出来......... 暂时想不到其他的了..............

最近访客

< 1/1 >

统计信息

已有90人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:44

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言