
最近用STM8S105K4做了一个小玩意,通过LIN总线和其他设备通讯。 按例程写了程序,在线调试也走通了,但是烧录入芯片后,就没有输出,感觉是整个芯片死机了。通过一段段减小代码的方式,现在基本锁定问题在UART2->CR2 |= 0x01;,只要这行代码运行,程序就死机,但是在线调试有没有问题。 不知道有人解释一下这是为什么吗? unsigned char *LIN_Send(unsigned char ch) { unsigned char TEMP[9]; unsigned char i=0; unsigned int Num = 0; UART2->CR2 |= 0x01; // 将UART_CR2的SBK位置1来请求发送断开符+分界符 UART_SendChar(0x55); // 对UART_DR写入0x55来请求发送同步域。 UART_SendChar(ch); // 对UART_DR写入被保护识别符值来请求发送识别符域 delay_ms(20); UART2->SR &= 0xDF; for (i = 0; i < 9; i++) { do { delay_ms(2); Num++; } while(((UART2->SR & 0x20) == 0x00) && (Num<40)); TEMP[i] = UART_ReceChar(); Num=0; } return TEMP; } |
请教下,STM8/STM32 products 有2D marking 和没有2D marking的工艺有差别吗?
IAR无法跳转定义,系统库文件文件名后有[RO]
初次接触STM8,请问在STVD中,为什么这个Struct会报错
正在使用stm8作为从机与esp32进行i2c通讯,但是发现主机扫描的i2c地址与stm8从机设置的i2c地址不一样,请问如何解决?
STMS005K6T6 如何采集内部参考电压。
stm8s003 adc中断和通道切换的问题
IAR代码编辑太费劲了,想问一下有没有好的方法,试了VScode但是头文件老是报错,调了很久也没调好,想换个方法了。
想问一下各位大佬,IAR下载调试代码时出现 warning: is an illegal data sample expression IAR是什么意思啊?
stm8s批量烧录问题
STM8S标准库TIM1编码器功能不计数,请大师帮我看看
UART2->CR2 = 0x0C; // 0x2C=0010 1100
原来UART2的CR2是设置成0x2C的,改成0x0C后,LIN收发正常。
CR2的第5位是RIET,的确与中断有关。但是到最终程序完成还是没想通,这里设成1之后为什么死机,调试的时候又没问题?
而且被引用的那个程序也是这样设置,就没有问题,我这里复制过来就不行。
RIEN: 接收中断使能,软件对该位置位或者清零
0:中断被禁止;
1:当USART_SR中的OR或者RXNE为1时,产生USART中断。